我在下面的代碼中遇到了一些問題,特別是在header.c中,我無法在header.h中訪問extern int x變量...爲什麼? .h中的extern變量不是全局變量嗎?我如何在其他文件上使用它?C未定義的參考
=== header.h ===
#ifndef HDR_H
#define HDR_H
extern int x;
void function();
#endif
=== header.c ===
#include <stdio.h>
#include "header.h"
void function()
{
printf("%d", x); //****undefined reference to x, why?****
}
=== sample.c文件===
int main()
{
int x = 1;
function();
printf("\n%d", x);
return 0;
}
可能之前'在主功能x'刪除'int'。這將阻止在主函數中創建一個新的局部變量,其名稱與全局變量 – bph 2012-08-08 09:08:48
(已刪除;意外添加的註釋)相同 – 2012-08-08 09:13:14
另請參見有關[http:// stackoverflow。COM /問題/ 7610321 /差-A-的extern-INT-A-42之間-的extern-INT-] [1] [1]:http://stackoverflow.com/questions/7610321/difference -between-extern-int-a-extern-int-a-42 – 2012-08-08 09:15:05