c – 什么时候.h不需要包含头文件?
发布时间:2020-12-16 10:16:35 所属栏目:百科 来源:网络整理
导读:这有效: #include iostreamusing namespace std; 但这失败了: #include stdio 什么时候不需要? 关于命名空间问题,我在cstdio中找不到这样的逻辑: #pragma once#ifndef _CSTDIO_#define _CSTDIO_#include yvals.h#ifdef _STD_USING #undef _STD_USING #in
这有效:
#include <iostream> using namespace std; 但这失败了: #include <stdio> 什么时候不需要? 关于命名空间问题,我在cstdio中找不到这样的逻辑: #pragma once #ifndef _CSTDIO_ #define _CSTDIO_ #include <yvals.h> #ifdef _STD_USING #undef _STD_USING #include <stdio.h> #define _STD_USING #else /* _STD_USING */ #include <stdio.h> #endif /* _STD_USING */ // undef common macro overrides #undef clearerr #undef feof #undef ferror #undef getc #undef getchar #undef putc #undef putchar #define _HAS_CONVENTIONAL_CLIB 1 #define _IOBASE _base #define _IOPTR _ptr #define _IOCNT _cnt #ifndef _FPOSOFF #define _FPOSOFF(fp) ((long)(fp)) #endif /* _FPOSOFF */ typedef FILE _Filet; #ifndef RC_INVOKED #if _GLOBAL_USING _STD_BEGIN using ::_Filet; 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 */ #endif /* _CSTDIO_ */ 解决方法
C标准定义的头文件不需要它,它们都没有.h扩展名. stdio.h的C版本是:
#include <cstdio> 包装stdio.h,将其中的名称放在C std命名空间中, 编辑:将名称放在gst版本的cstdio中的std命名空间中的宏是: _GLIBCXX_BEGIN_NAMESPACE(std) 您可以通过尝试使用以下内容来检查您自己的标头是否应该执行以下操作: std::printf( "hello" ); 在你的代码中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |