Warning: This function or variable may be unsafe.

Die Warnung „This function or variable may be unsafe.“ erhält man häufig in Microsoft Visual Studio bei der Verwendung von älteren Stringfunktionen wie etwa strcpy. Es wird einem vorgeschlagen anstelle von strcpy die Funktion strcpy_s zu benutzen, welche vor Pufferüberläufen schützt. Allerdings ist strcpy_s noch kein durchgesetzter ANSI-C-Standard, weshalb manche C-Compiler (z.B. unter Unix/Linux-Systemen) diese Funktion nicht kennen.

Um massenkompatibel zu sein und die Fehlermeldung zu unterdrücken empfiehlt es sich deshalb _CRT_SECURE_NO_WARNINGS zu definieren. Diese Konstante muss als Präprozessor-Direktive (also als ein Ding mit einem # davor) noch vor den #include Befehlen angegeben werden.

Beispiel:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

Eine elgante Variante für die Compilerproblematik ist die Abfrage, ob es sich beim Compiler um Microsoft Visual Studio handelt (wenn ja, dann strcpy_s benutzen) oder nicht (dann strcpy benutzen):

Beispiel:

#ifdef _MSC_VER
/* Anweisungen mit strcpy_s */
#else
/* Anweisungen mit strcpy */
#endif