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

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

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4622 | 回復(fù): 19
打印 上一主題 下一主題

[C] C語言,const定義了,gcc卻報(bào)告沒有定義。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-10-29 23:43 |只看該作者 |倒序?yàn)g覽
const.h文件
const long BUF_LEN = 20;


main.c 文件
#include "const.h"
#include <stdio.h>

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char buf[BUF_LEN];
&nbsp;&nbsp;&nbsp;&nbsp;......
}


執(zhí)行:
gcc main.c

報(bào)錯(cuò):
main.c: In function `main':
main.c:10: error: `BUF_LEN' undeclared (first use in this function)
main.c:10: error: (Each undeclared identifier is reported only once
main.c:10: error: for each function it appears in.)


請教原因。

另有一個(gè)問題,各位保存常量是放在獨(dú)立的文件嗎?一般怎么起名字的?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-10-29 23:47 |只看該作者
extern const long BUF_LEN ?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-10-30 00:04 |只看該作者
沒發(fā)現(xiàn)這個(gè)符號“BUF_LEN”?測試了下確實(shí)可以通過編譯

[ 本帖最后由 tyc611 于 2008-10-30 00:09 編輯 ]

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2008-10-30 00:05 |只看該作者
原帖由 Xorcerer 于 2008-10-29 23:43 發(fā)表
const.h文件
const long BUF_LEN = 20;

main.c 文件
#include "const.h"
#include

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char buf[BUF_LEN];
&nbsp;&nbsp;&nbsp;&nbsp;......
}

執(zhí)行:
gcc  ...

h里只放extern
定義放c里。。。

論壇徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辭舊歲徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [報(bào)告]
發(fā)表于 2008-10-30 00:27 |只看該作者
原帖由 Xorcerer 于 2008-10-29 23:43 發(fā)表
const.h文件
const long BUF_LEN = 20;

main.c 文件
#include "const.h"
#include

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char buf[BUF_LEN];
&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}

執(zhí)行:
gcc  ...

提示main.c:10,應(yīng)該先看看第10行或前后的代碼有什么錯(cuò)誤。我這里能編譯過

變量不能直接定義在被兩次以上引用的頭文件中,可以定義在c文件中const long BUF_LEN = 20;
頭文件中用extern const long BUF_LEN;

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-10-30 00:33 |只看該作者
謝謝, 編譯通過了。
修改方法是,h文件不變,c中加入

extern const long BUF_LEN;

就好了。

能不能不要那么麻煩呢?我希望是include之后就立即用上,可能嗎?

[ 本帖最后由 Xorcerer 于 2008-10-30 00:38 編輯 ]

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-10-30 00:40 |只看該作者
原帖由 Xorcerer 于 2008-10-30 00:33 發(fā)表
謝謝, 編譯通過了。
修改方法是,h文件不變,c中加入

extern const long BUF_LEN;

就好了。

能不能不要那么麻煩呢?我希望是include之后就立即用上,可能嗎?

見4 5樓
你只需include即可
但必須在某c處定義一次

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-10-30 00:50 |只看該作者
數(shù)組長度定義干嘛不用宏呢

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-10-30 01:08 |只看該作者
除非是需要使用 C99 的 dynamic array,否則個(gè)人建議用宏來代替這個(gè) const long。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-10-30 08:36 |只看該作者
原帖由 Xorcerer 于 2008-10-30 00:33 發(fā)表
謝謝, 編譯通過了。
修改方法是,h文件不變,c中加入

extern const long BUF_LEN;

就好了。

能不能不要那么麻煩呢?我希望是include之后就立即用上,可能嗎?

我覺得應(yīng)該不會報(bào)錯(cuò)啊,include應(yīng)該也是預(yù)處理后拷貝而已
應(yīng)該看看你的頭文件中完整版
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP