是否必须在程序顶部和主函数之外编写#include?
我尝试在 main 函数中使用 #define 预处理器,它工作正常,只有一个例外......这是我使用define指令定义的常量只能在#define行之后使用例如说printf("%d",PI); #define PI 3.14会给出错误“未定义符号PI ”。但是在下面的代码中我没有遇到任何错误
#define PI 3.14
printf("%d",PI);
Run Code Online (Sandbox Code Playgroud)
这是因为 C 是一种过程语言并且过程语言实现了自上而下的方法吗?
另外我想知道我们可以在主函数或其他预处理器指令中只使用 #define 吗?如果我们可以使用,那么哪些?或者相反,我们可以使用 main 函数中的所有预处理器指令代替 #include ?
void f(void);
int x = 15213;
int main()
{
f();
printf("x = %d\n", x);
return 0;
}
/* bar3.c */
int x;
void f()
{
x = 15212;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我得到的输出是15212.我不明白怎么样?
首先,main函数调用另一个c文件中的f()定义.在f()中,x的值从15213变为15212.然后我们打印x.但是对x做出的改变应该只保留在f中吗?X的范围仅限于f().即便如此,它仍然是打印15212