从与浅析加c头文件与.h头文件的区别

加C头文件是C++为了兼容纯C语法而对.h文件进行了处理,例如cstdio

// cstdio standard header
#pragma once
#ifndef _CSTDIO_
#define _CSTDIO_
#include 

#ifdef _STD_USING
 #undef _STD_USING
  #include 
 #define _STD_USING

#else /* _STD_USING */
 #include 
#endif /* _STD_USING */

 #define _HAS_CONVENTIONAL_CLIB    1

 #define _IOBASE    _base
 #define _IOPTR    _ptr
 #define _IOCNT    _cnt

#ifndef RC_INVOKED
 #if _GLOBAL_USING
_STD_BEGIN
using ::size_t; using ::fpos_t; using ::FILE;
using ::clearerr; using ::fclose; using ::feof;
using ::ferror; using ::fflush; using ::fgetc;
using ::fgetpos; using ::fgets; using ::fopen;
using ::fprintf; using ::fputc; using ::fputs;
using ::fread; using ::freopen; using ::fscanf;
using ::fseek; using ::fsetpos; using ::ftell;
using ::fwrite; using ::getc; using ::getchar;
using ::gets; using ::perror;
using ::putc; using ::putchar;
using ::printf; using ::puts; using ::remove;
using ::rename; using ::rewind; using ::scanf;
using ::setbuf; using ::setvbuf; using ::sprintf;
using ::sscanf; using ::tmpfile; using ::tmpnam;
using ::ungetc; using ::vfprintf; using ::vprintf;
using ::vsprintf;
_STD_END
 #endif /* _GLOBAL_USING */
#endif /* RC_INVOKED */

#ifndef _Filet
 #define _Filet    FILE
#endif /* _Filet */

#ifndef _FPOSOFF
  #define _FPOSOFF(fp)  ((long)(fp))
#endif /* _FPOSOFF */

#endif /* _CSTDIO_ */

/*
 * Copyright (c) 1992-2005 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V4.05:0009 */

从上面的代码可以看出C++将所有原来.h中定义的东西都加入到了std命名空间中。。。。

所以C++代码中请尽量用加C头文件。

你可能感兴趣的:(C++)