我的 csapp 书中说,如果初始化全局变量和静态变量,那么它们将包含在 ELF 可重定位目标文件的 .data 部分中。
所以我的问题是,如果某些foo.c
代码包含
int a;
int main()
{
a = 3;
}`
和example.c
包含,
int b = 3;
int main()
{
...
}
是否只有b
被视为已初始化?换句话说,初始化是否意味着声明和定义在同一行?
最佳答案
它的意思正是它所说的。初始化的静态存储持续时间对象将在调用主函数之前设置其初始值。未初始化将被清零。该声明的第二部分实际上取决于实现,并且实现对其存档方式具有完全的自由。
当您声明不带关键字 extern
的变量时,您也始终会定义它
关于c++ - 'initialization'到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58798530/