[問題] extern應該宣告在副函式c中的h檔嗎?
我看misra-c規範中有提到
8.8 物件或函數若為外部,應只宣告在唯一檔案中
其舉例如下
1.於A.c程式碼中宣告物件或函數本體
void Function1(void) {….}
int a;
2.再於A.h程式碼中宣告可被外部引用
extern void Function1(void);
extern int a;
3.則於B.c、C.c…包含後就可直接引用
#include “A.h”
但對於第2個例子我有點疑惑,
在A.c中若有一個Function1通常會在A.h中宣告
void Function1(void)
這時因為要被外部引用宣告extern void Function1(void)
又被A.c自己include進來,不會有衝突?
同樣的c中已經宣告int a,又在會被include進來的h檔中寫extern int a 是否衝突啊
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.152.56
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1449346242.A.A2F.html
※ 編輯: qeagle (36.227.152.56), 12/06/2015 04:30:58
→
12/06 07:02, , 1F
12/06 07:02, 1F
→
12/06 09:27, , 2F
12/06 09:27, 2F
推
12/06 11:47, , 3F
12/06 11:47, 3F
→
12/06 11:47, , 4F
12/06 11:47, 4F
推
12/06 12:22, , 5F
12/06 12:22, 5F
→
12/06 12:22, , 6F
12/06 12:22, 6F
→
12/06 12:58, , 7F
12/06 12:58, 7F
→
12/06 12:59, , 8F
12/06 12:59, 8F
→
12/06 13:00, , 9F
12/06 13:00, 9F
→
12/06 13:37, , 10F
12/06 13:37, 10F
推
12/06 14:12, , 11F
12/06 14:12, 11F
→
12/06 14:47, , 12F
12/06 14:47, 12F
→
12/06 14:48, , 13F
12/06 14:48, 13F
推
12/06 15:42, , 14F
12/06 15:42, 14F
→
12/06 15:42, , 15F
12/06 15:42, 15F
→
12/06 15:43, , 16F
12/06 15:43, 16F