头文件可以在主类中运行.这怎么可能?
Header files can run in main class. How is that possible?
当我使用C编程时,这是正常的include
方法是
#include<stdio.h>
int main()
{
printf("Hello World");
return 0;
}
Output: Hello World
现在我试图将我的#include
放入我的主类中,并且它完美运行,没有任何错误或警告。
int main()
{
#include <stdio.h>
printf("Hello Worldn");
return 0;
}
Output: Hello World
我已经用C++
尝试过这种方法。我不能在那里做那种活动,它给了我很多错误。
为什么只有C
有这种技术?
这怎么可能?
如图所示,内部cdefs.h
__BEGIN_DECLS
定义为
#ifdef __cplusplus
#define __BEGIN_DECLS extern "C" {
#define __END_DECLS }
#else
#define __BEGIN_DECLS
#define __END_DECLS
#endif
此__BEGIN_DECLS
用于stdio.h
,如下所示
对于C++
,__BEGIN_DECLS
扩展到extern "C"
,链接规范应该在全局范围内,而不是在main
我相信你有很多好奇心。
我对C
相对问题只有一个想法
首先,您需要了解compile process
简而言之,compile process
中有 4 个主要(我称之为助手(助手
在您的代码中,位于 main 函数中的#include<stdio.h>
运行良好,因为第一个名叫Preprocessor
的人。
Preprocessor
通常会替换或让其他助手知道您的function
或variables
的位置
例如
#define TRUE 1
如果在代码中将TRUE
定义为1
,则预处理器会将所有TRUE
替换为1
众所周知,printf()
的位置在<stdio.h>
。
如果您想具体了解,请在终端中运行gcc -E main.c
。 我建议你不要把#include<stdio.h>
放在printf()
之后
c++ 标头(与 c 标头相对(定义命名空间(std 等(,如果包含在任何函数的主体中,则会触发错误(命名空间定义必须出现在文件范围或立即出现在另一个命名空间定义中(。
- 头文件可以在主类中运行.这怎么可能?
- 怎么可能只让设备使用 pjsua2 捕获或播放
- std::lock_guard 怎么可能比 std::mutex::lock() 更快?
- 怎么可能写 f( *this, std::forward<Args>(args)... ) 而 f 只用 F f 声明;
- 在QT C++编辑Qtable模型数据时,我需要得到一个小盒子,我需要显示编辑文本,这怎么可能?
- 在给定相同的输入的情况下,某些代码怎么可能花费更多时间来运行,这似乎只是因为它处于循环中?
- 答案怎么可能是433?
- 八进制文字怎么可能是负数?
- 我们可以在整数类型的双指针中分配2D整数数组的地址吗?怎么可能
- 我怎么可能从尚未定义某些成员方法的类创建实例?(C++)
- 使用 stl 迭代器封装向量是否很好?如果是?怎么可能呢?
- 几个比较怎么可能比一些计算慢
- 我的 Cuda 矢量怎么可能在填充后是空的
- 怎么可能有两个同名的变量——一个是全局变量,另一个是局部变量
- 奇怪的交叉播.这怎么可能
- 一个变量怎么可能既是constexpr又不是constexpr
- 如果方法私有,是否可以从 main 调用该方法?如果不是,怎么可能
- ANSI到Unicode或向后转换:怎么可能?
- OpenGL错误只在未经调试的情况下运行时出现,怎么可能呢
- 数组是静态的,但数组大小直到运行时才知道。这怎么可能?