程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 指針-C語言中多文件的全局變量聲明問題

指針-C語言中多文件的全局變量聲明問題

編輯:編程解疑
C語言中多文件的全局變量聲明問題

具體問題請麻煩看鏈接

C語言遇到問題

我寫了一個函數void match(char* list)/*作用是在list字符串中查找給定子字符串*/
又寫了一個函數void find(void (*match)(char*))/*因為想用函數指針,就把match函數傳遞進去了
然後find()函數遍歷字符串數組。
最後在main()函數中寫字符串數組char* shuzu[]的具體內容
然後把match函數,find函數,main函數保存在不同的.c文件中
最後寫了一個頭文件,其中保存了函數申明,還有那個字符串數組的申明
我是這樣寫的extern char* shuzu[];

最後遇到的問題是編譯時告訴我find()函數遇到未定義變量shuzu[],,可我不是把它定義成
全局變量保存在頭文件中了嗎?

最佳回答:


把數組shuzu定義放到main函數外面,才是全局數組。
頭文件的聲明保持不變。
extern 聲明該變量是外部或本文件的全局變量。

 #include<stdio.h>
#include"declare.h"
 char* shu_zu[]={
                "wodemingzijiaozuowuguannan",
                 "wujunyishiwofuqing",
                 "liuhongjushiwomuqing",
                 "woxihuanwozijiwuguannan"
        };
int main()
{
 find(match);
 return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved