工具
精华
|
战斗力 鹅
|
回帖 0
注册时间 2017-10-31
|
本帖最后由 proof1 于 2024-12-2 16:15 编辑
program.cpp main()所在的主文件
function.h 头文件,用于声明函数
function.cpp 用于定义函数,内容如下:
-----------------------------------------
#include "function.h"
int AST; //测试代码
AST=8888; //测试代码,编译报错
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
-----------------------------------------
测试代码 int AST; AST=8888; 若插入函数体中,比如add(){ },则编译正常。
若不属于任何函数体,则 int AST; 通过。
AST=8888; 报错:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2086: 'int AST' : redefinition
问题:这两行测试代码,若写在主文件 program.cpp中,且不属于任何函数体,则属于全局变量。可以正常编译。
若在非主文件 function.cpp中,且不属于任何函数体。int AST; 或者 int AST=88; 能够通过,属于哪种范围变量?是否执行不到它?
C++ 多文件协作,是一个什么规则?
|
|