Name

DEFECT_OLD_STDC_HEADERS


Affected Systems-Compilers

Systems: SGI IRIX6

Compilers: SGI MipsPro 7.1nx


Description

Standard C++ uses different filenames for the Standard C Library headers. This change was made to avoid filename conflicts, account for differences in linkage (extern "C" versus extern "C++"), and also to emphasize that there are subtle differences between the original Standard C Library and the Standard C Library-like subset of the Standard C++ Library.


Work-Around

// To include Standard C's stdio.h and string.h header files

#if defined(DEFECT_OLD_STDC_HEADERS)

#include <stdio.h>

#include <string.h>

#else // Standard C++

#include <cstdio>

#include <cstring>

#endif


Approximate Filename Translations for Standard C Library Headers

 
Standard C++ Headers for C Lib Standard C Headers  Comments
cassert assert.h
cctype ctype.h
cerrno errno.h
cfloat float.h
ciso646 iso646.h Amendment 1 to ISO C Standard
climits limits.h
clocale locale.h
cmath cmath.h
csetjump setjump.h
csignal signal.h
cstdarg stdarg.h
cstddef stddef.h
cstdio cstdio.h
cstdlib stdlib.h
cstring string.h Standard C filename is the same as the traditional C++ filename: string.h
ctime time.h
cwchar wchar.h Amendment 1 to ISO C Standard
cwctype wctype.h Amendment 1 to ISO C Standard