Bagikan melalui


_CrtSetDebugFillThreshold

Mengambil atau memodifikasi ambang batas yang mengontrol perilaku pengisian buffer dalam fungsi debug.

Sintaksis

size_t _CrtSetDebugFillThreshold( size_t newThreshold );

Parameter-parameternya

newThreshold
Ukuran ambang batas baru dalam byte.

Mengembalikan nilai

Nilai ambang batas sebelumnya.

Komentar

Versi debug dari beberapa fungsi CRT yang ditingkatkan keamanan mengisi buffer yang diteruskan kepada mereka dengan karakter khusus (0xFE). Karakter isian ini membantu menemukan kasus di mana ukuran yang salah diteruskan ke fungsi. Sayangnya, itu juga mengurangi performa. Untuk meningkatkan performa, gunakan _CrtSetDebugFillThreshold untuk menonaktifkan pengisian buffer untuk buffer yang lebih besar dari newThreshold ambang batas. newThreshold Nilai 0 menonaktifkannya untuk semua buffer.

Ambang batas defaultnya adalah SIZE_T_MAX.

Berikut daftar fungsi yang terpengaruh:

Persyaratan

Rutin Header yang diperlukan
_CrtSetDebugFillThreshold <crtdbg.h>

Fungsi ini khusus Microsoft. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Perpustakaan

Hanya men-debug versi pustaka run-time C .

Contoh

// crt_crtsetdebugfillthreshold.c
// compile with: cl /MTd crt_crtsetdebugfillthreshold.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <crtdbg.h>

void Clear( char buff[], size_t size )
{
   for( int i=0; i<size; ++i )
      buff[i] = 0;
}

void Print( char buff[], size_t size )
{
   for( int i=0; i<size; ++i )
      printf( "%02x  %c\n", (unsigned char)buff[i], buff[i] );
}

int main( void )
{
   char buff[10];

   printf( "With buffer-filling on:\n" );
   strcpy_s( buff, _countof(buff), "howdy" );
   Print( buff, _countof(buff) );

   _CrtSetDebugFillThreshold( 0 );

   printf( "With buffer-filling off:\n" );
   Clear( buff, _countof(buff) );
   strcpy_s( buff, _countof(buff), "howdy" );
   Print( buff, _countof(buff) );
}
With buffer-filling on:
68  h
6f  o
77  w
64  d
79  y
00
fe  ■
fe  ■
fe  ■
fe  ■
With buffer-filling off:
68  h
6f  o
77  w
64  d
79  y
00
00
00
00
00

Lihat juga

Rutinitas debug