_CrtSetDebugFillThreshold

检索或修改在调试函数中控制缓冲区填充行为的阈值。

size_t _CrtSetDebugFillThreshold(
   size_t _NewThreshold
);

参数

  • newThreshold
    新阈值。

返回值

之前的阈值。

备注

一些安全性增强的 CRT 函数调试版本用特定字符 (0xFD)填充传递给它们的缓冲区。 这有助于查找不正确的范围传递给函数的情况。 不幸地,这同样会降低性能。 为了改进性能,对于缓冲区超过阈值,请使用 _CrtSetDebugFillThreshold 禁止填充缓冲区。 0阈值将禁用所有的缓冲区。

默认阈值为 SIZE_T_MAX

下面列出了受影响的函数。

要求

例程

必需的标头

_CrtSetDebugFillThreshold

<CRTDBG.H>

有关更多兼容性信息,请参见“简介”中的兼容性

仅限 C 运行时库的调试版本。

示例

// crt_crtsetdebugfillthreshold.cpp
// compile with: /MTd
#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
fd  ²
fd  ²
fd  ²
fd  ²
With buffer-filling off:
68  h
6f  o
77  w
64  d
79  y
00
00
00
00
00

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例

请参见

参考

调试例程