1樓:匿名使用者
微控制器的led控制?陣列在子函式外作全域性變數是可以的,我就經常這麼定義。你的程式主函式呢?
void main?問題不在子函式的陣列呼叫這。全域性陣列的定義語句一般是uchar code table ={};和一般的陣列定義不同,必須加code,你看是不是這個問題。
詳細你可以找我私戳
2樓:叄生萬物
在c語言中,全域性變數和函式宣告及定義並列,也就是說,宣告在最外層作用域的變數即為全域性變數
如在如下程式中
int i;
int main()
int i就是乙個全域性變數,故在main函式中可以呼叫或修改i的值所以,定義陣列也和普通全域性變數的方法相同,如char str[10];
int main()
但是有幾點需要注意:
c中自上向下語法分析和編譯語法樹,如果要讓所有函式都能呼叫該全域性變數,就要把其放在所有函式定義之前,確保宣告的作用域覆蓋整個程式;
在全域性變數宣告時,其初始值必須為編譯時常量,不能為變數;
若要使用程式外的全域性變數,需要在修飾符中加入extern關鍵字,並不要忘了和原本定義處鏈結
3樓:
把你的所有函式體寫在main函式前面,就不用在前面進行函式宣告;
陣列什麼時候加code,這個是有講究的,在程式執行中不對陣列裡的內容進行修改時,這時可以加上code;如果在程式執行中要對陣列裡的內容進行
修改,那麼就不能加上code;比如在你程式中就可以加上code.
#define uint unsigned int#define uchar unsigned charuchar a=;
uchar a=;
uchar wei=;
uchar led1,led2,led3,led4;
uchar x=100;
void sz()
else
}void g()
void r()
void main( void )
c語言陣列宣告問題
4樓:
有初始化的陣列定義可以省略方括號中的陣列大小。
例如,下面的**中陣列定義為5個元素:
int a=;如 char str="program"
編譯時必須知道陣列的大小。如果陣列大小要根據運**況來確定,可以使用動態陣列:
int *p=(int *)calloc(num,sizeof(int));
5樓:匿名使用者
一般有四種陣列定義方式,以一維陣列為例:
//定義指定維數的陣列
int arr[10];
//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。
int arr = ;
//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;
//動態分配乙個陣列。下面分配了乙個有10個元素的陣列。
int *arr =(int *) malloc(10 * sizeof(int));
6樓:匿名使用者
你說的是該型別指標可以不指定寬度吧,動態建立的那種可以。
那是int *a;才可以吧
c語言陣列問題C語言中用陣列解約瑟夫問題
答案是a 前2個 就表示乙個 字元 接著是141共三個字元 接著的 141表示乙個字元 abc三個字元 t製表符,乙個字元 所以總共9個字元 include include void main for i 0 i 5 i 放入新陣列printf n for i 0 i 5 i 輸出新陣列 求平均63...
c語言關於陣列賦初值的問題,C語言關於陣列賦初值的問題char buff
char buff 5 這樣寫賦初值,雖說沒有給buff 1 buff 4 賦值,但是預設是賦值0的,這樣寫沒問題。很多教材上都有的。char buff 10 是可以把這個陣列的所有元素的賦值成0的。不信你用下面的 測試一下。include void main int i for i 0 i 4 i...
C語言陣列基礎問題
1.請問arrout s,k 裡面的s是 值 還是 址?答 s是 位址,位址也是一種值。因此,c中有一種說法 c函式引數只傳值!2.s能換成其他的什麼形式?為什麼要轉?arrout 函式中,需要的是乙個整型變數的位址,你傳的s就是整型變數的位址,很正確的應用啊。3.k為什麼不是 k?答 當你不需要在...