We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Type Checking (CRT)

The compiler performs limited type checking on functions that can take a variable number of arguments, as follows:

Function call

Type-checked arguments

_cprintf, _cscanf, printf, scanf

First argument (format string)

fprintf, fscanf, sprintf, sscanf

First two arguments (file or buffer and format string)


First three arguments (file or buffer, count, and format string)


First two arguments (path and _open flag)


First three arguments (path, _open flag, and sharing mode)

_execl, _execle, _execlp, _execlpe

First two arguments (path and first argument pointer)

_spawnl, _spawnle, _spawnlp, _spawnlpe

First three arguments (mode flag, path, and first argument pointer)

The compiler performs the same limited type checking on the wide-character counterparts of these functions.