亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 4189 | 回復(fù): 22
打印 上一主題 下一主題

全局變量問題 又搞不清了 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-04-01 16:22 |只看該作者 |倒序?yàn)g覽
本帖最后由 tianxiaogang12 于 2010-04-01 16:25 編輯

文件f1.h

#ifndef _F1_H
#define _F1_H

#include <stdio.h>
void setone();

#endif //_F1_H

文件f1.c
#include "f1.h"

int i;
int i;  //////// 為什么這不報(bào)重復(fù)定一個(gè)的錯(cuò)誤呢?
void setone()
{
        printf("f1 i = %的\n", i);
}

文件mymain.c
#include "f1.h"
int i = 100;

int main()
{
        printf("mymain i = %d\n", i);
        setone();
       
}

該程序可以編譯過運(yùn)行正常(gcc 4.1.2),但是我在文件f1.c明明重復(fù)頂一個(gè)了一個(gè)int i 啊
文件mymain.c也定義了一個(gè)int i
按理這三個(gè)i都要分配內(nèi)存,然后報(bào)錯(cuò)
有人說這兩個(gè)int i 是聲明,但這明明是定義 不知道我學(xué)的課本是不是沒有教對(duì)

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-04-01 16:46 |只看該作者
你這兩個(gè)定義,沒有連接在一起吧?并不是你包含了f1.h,就會(huì)自動(dòng)給你連接f1.c的。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-04-01 16:47 |只看該作者
你gcc f1.c mymain.c -o out 試試看

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-04-01 17:46 |只看該作者
是不是當(dāng)聲明來看了,而不是定義

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-04-01 18:32 |只看該作者
你這兩個(gè)定義,沒有連接在一起吧?并不是你包含了f1.h,就會(huì)自動(dòng)給你連接f1.c的。
naihe2010 發(fā)表于 2010-04-01 16:46



    編譯器在編譯f1.c時(shí)變量i會(huì)不會(huì)分配空間?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-04-01 20:20 |只看該作者
很奇怪會(huì)有人這樣寫header file
更奇怪有人會(huì)把 int i;寫兩次
我知道問題的答案
但我真的不想說

論壇徽章:
5
獅子座
日期:2013-08-20 10:12:24午馬
日期:2013-11-23 18:04:102015年辭舊歲徽章
日期:2015-03-03 16:54:152015亞冠之德黑蘭石油
日期:2015-06-29 18:11:1115-16賽季CBA聯(lián)賽之新疆
日期:2024-02-21 10:00:53
7 [報(bào)告]
發(fā)表于 2010-04-01 20:47 |只看該作者
6.9.2 External object definitions
Semantics
1 If the declaration of an identifier for an object has file scope and an initializer, the
declaration is an external definition for the identifier.
2 A declaration of an identifier for an object that has file scope without an initializer, and
without a storage-class specifier or with the storage-class specifier static, constitutes a
tentative definition. If a translation unit contains one or more tentative definitions for an
identifier, and the translation unit contains no external definition for that identifier, then
the behavior is exactly as if the translation unit contains a file scope declaration of that
identifier, with the composite type as of the end of the translation unit, with an initializer
equal to 0.


這樣?

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-04-01 21:38 |只看該作者
很奇怪會(huì)有人這樣寫header file
更奇怪有人會(huì)把 int i;寫兩次
我知道問題的答案
但我真的不想說
KBTiller 發(fā)表于 2010-04-01 20:20



    頭文件這么寫有什么不對(duì)? 把 int i;寫兩次是為了測(cè)試一下全局變量,更好的理解現(xiàn)在就是不理解
    麻煩樓上的講解一下 因?yàn)楦绾懿?/td>

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-04-01 22:19 |只看該作者
本帖最后由 KBTiller 于 2010-04-01 22:33 編輯
頭文件這么寫有什么不對(duì)? 把 int i;寫兩次是為了測(cè)試一下全局變量,更好的理解現(xiàn)在就是不理解
...
tianxiaogang12 發(fā)表于 2010-04-01 21:38



  
  1. #inc\
  2. lude <\
  3. std\
  4. io.h>
  5. in\
  6. t ma\
  7. in( v\
  8. oid ){p\
  9. ri\
  10. ntf          ("He"
  11.     "llo"
  12. " Wo"
  13. "rld\n"
  14. ); re\
  15. turn
  16. 0;}
復(fù)制代碼


Hello world 這樣寫有何不可?

如果有人問我為什么可以這樣寫HelloWorld
我也不會(huì)回答的
代碼缺少精神與靈魂
即使語(yǔ)法上沒有錯(cuò)誤
也不過是行尸走肉而已

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-04-01 22:31 |只看該作者
我愿意誤入歧途, 我問為什么不報(bào)錯(cuò)? 知道就說,不知道就去打醬油
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP