c語言強轉編譯錯誤?
1、 在函數 ‘transform’ 中:7: 錯誤:expected ‘;’ before ‘{’ token
解釋:‘{’之前的某個語句缺少分號‘;’;
2、 在函數 ‘Insert_SqList’ 中:6: 錯誤:‘listsize’ 未聲明 (在此函數內第一次使用)
解釋:‘listsize’這個變量未聲明;
3、 在函數 ‘Hanoi’ 中:9: 錯誤:提供給函數 ‘Hanoi’ 的實參太少
解釋:使用‘Hanoi’函數時,輸入的實參不足;
4、 在函數 ‘max’ 中:3: 錯誤:‘a’ 被重新聲明為不同意義的符號
解釋:在函數‘max’中,變量名a被重新聲明為不同的變量類型;
5、 在函數 ‘EvaluateExpression’ 中:7: 錯誤:程序中有游離的 ‘#’
解釋:在函數‘EvaluateExpression’中,有不可識別的ASCII字符。一般這種情況是由于將代碼復制進代碼區時,有一些編譯器不能識別的字符也被復制進去,導致的編譯錯誤;
6、 在函數 ‘encode’ 中:6: 錯誤:被調用的對象 ‘code’ 不是一個函數
解釋:在函數‘encode’中,調用‘code’時發現,code并未聲明為一個函數;
7、 在函數 ‘prime’ 中:6: 錯誤:在 C99 模式之外使用 ‘for’ 循環初始化聲明
解釋:在函數‘prime’中,調用for循環的格式不符合C99規范。一般這類問題的錯誤格式為for(int i=0;i<...),由于C語言是要求你必須將變量在函數開始處進行聲明,不支持在任意地方聲明變量,所以正確的格式應該是int i;...; for(i=0; i<...);
8、 21: 錯誤:expected identifier or ‘(’ before ‘}’ token
解釋:在‘}’之前缺少一個標識符或‘(’;
9、 在函數 ‘CreatLink_L’ 中:14: 錯誤:賦值時類型不兼容
解釋:在CreatLink_L函數中,在賦值的過程中等號兩側的數據類型不兼容;
10、段錯誤
解釋:一般來說,段錯誤就是指訪問的內存超出了系統所給這個程序的內存空間,通常這個指是由gdtr來保持的,他是一個48位的寄存器,其中32位是保存 由它指向的gdt表,后13位保持對英語gdt的下表,最后3位包括了程序是否在內存中以及程序的在cpu中運行的級別,指向的gdt是由以64位為一個 單位的表,在這張表中就保存著程序運行的代碼段以及數據段的起始地址以及與此相應的段限和頁面交換還有程序運行級別還有內存粒度等等的信息。一旦一個程序 發生了越界訪問,cpu就會產生相應的異常保護,于是segmentation fault(段錯誤)就出現了。出現段錯誤比較常見的情況是訪問不安全的指針對象,即指針所指的值并非預期的值時,對指針所指向的對象進行操作。引發段錯 誤后,程序執行終止,之后的代碼將不再執行;
11、在函數 ‘ListInsert_Sq’ 中:12: 錯誤:‘SqList’ 沒有名為 ‘Length’ 的成員
解釋:在函數‘ListInsert_Sq’中,訪問的結構體‘SqList’并沒有‘Length’這個成員;
12、在函數 ‘ReverseList_Sq’ 中:11: 錯誤:數組下標不是一個整數
解釋:在函數‘ReverseList_Sq’中,訪問數組成員時使用的下標不是整數。數組中標識每個元素都有一個整形下標,實際操作中是在數組基址的基礎上加上這個整形下標得出存儲對應數組元素地址,然后訪問這個地址存儲的數據;
13、在函數 ‘dec_to_oct’ 中:10: 錯誤:實參 1(屬于 ‘Push_Sq’)類型不兼容
解釋:在函數‘dec_to_oct’中,調用函數Push_Sq時,輸入的第一個實參類型與函數指定的第一個實參類型不兼容;
14、在函數 ‘GetTop’ 中:7: 錯誤:在非結構或聯合中請求成員 ‘top’
解釋:在函數‘GetTop’中,在訪問結構體或聯合體內的成員變量‘top’時,發現訪問的變量類型并非是一個結構體或聯合體;
15、在函數 ‘score’ 中:5: 錯誤:case 標號不能還原為一個整常量
解釋:在函數‘score’中,case標號后跟著的表達式的值并非一個常量值。C語言對于switch語句的語法規定,要求switch后面的括號內為 一個表達式。其值應與某一個case后面的常量表達式的值相對應,然后就執行此case后面的語句。這就意味著在case語句之后必須是一個整形常量,并 且在C編譯器中要求這個常量表達式的值還必須是一個整形值;
16、5:23: 警告:多字節字符常量 在函數 ‘transform’ 中:
解釋:對字符變量賦值應對應一個字符常量,如char c = 'c'。如果將多個字符常量賦給一個字符變量時,如char c = 'abc',就引發多字節字符常量警告;
17、在函數 ‘transform’ 中:3: 警告:隱式聲明與內建函數 ‘strlen’ 不兼容
解釋:在程序中使用字符串函數strlen時未include<string.h>。我們的系統希望用戶能自行實現一些功能代碼,而不是調用庫函數。必須要使用庫函數的地方,我們會在調用后程序時導入include語句;
18、6: 錯誤:‘prime’ 重定義3: 錯誤:‘prime’ 的上一個定義在此
解釋:prime函數重定義;
19、在函數 ‘leap_year’ 中:3: 錯誤:賦值運算中的左值無效
解釋:賦值操作符‘=’的左端的值為左值(l_value),對應右側的值為右值(r_value)。左值的要求是可尋址的(l的意思為can be though of as location,而不是left),一般是變量。右值的要求是可讀的(r的意思為can be though of as "read" value,而不是right),可以是變量和常量;
20、在函數 ‘IntersectList_Sq’ 中:18: 錯誤:雙目運算符 * 操作數無效
解釋:雙目運算符‘*’的操作數不滿足運算符的要求,或者說兩個操作數不能發生指定的雙目運算;
21、在函數 ‘ListInsert_DuL’ 中:8: 警告:初始化時將整數賦給指針,未作類型轉換
解釋:初始化指針變量時,將整型數值賦給該變量,引發的類型不匹配警告;
22、在函數 ‘DerivationPolyn’ 中:7: 錯誤:無效的初始值設定
解釋:初始化變量時使用不兼容的右值來初始化左值,往往會引發這種錯誤;
23、在函數 ‘cmpterm’ 中:7: 錯誤:‘->’ 的實參類型無效
解釋:‘->’的指向的結構體或聯合體成員名不存在,即在訪問指針指向的結構體類型中不存在的成員時,會引發這種錯誤;
24、在函數 ‘lineEdit’ 中:15: 警告:傳遞參數 2 (屬于 ‘Pop_Sq’)時將整數賦給指針,未作類型轉換
解釋:在函數‘lineEdit’中,調用函數Pop_Sq時要求第二個參數為指針變量,而輸入的參數為整型;
25、在函數 ‘ListInsert_DuL’ 中:8: 警告:從不兼容的指針類型初始化
解釋:在函數‘ListInsert_DuL’中,為指針變量初始化值時,右值與指針類型不兼容;
26、在函數 ‘ReverseList_Sq’ 中:8: 錯誤:與 ‘pa’ 類型沖突
解釋:可能對變量‘pa’使用了其類型不支持的操作。或者將‘pa’變量賦給不同類型的變量或重定義該變量;
27、8:9: 錯誤:空的字符常量
解釋:C的字符常量是用單撇號括起來的一個字符。如'a','x','D','?','$'等都是字符常量。但注意''并不表示一個字符常量。如果訪問'',就會引發空字符常量錯誤;
28、在函數 ‘MergeList_Sq’ 中:18: 警告:在無返回值的函數中,‘return’ 帶返回值
解釋:void函數為無返回值的函數。這就意味著函數中使用‘return’語句時,之后不能跟有返回值;
29、在函數 ‘rabbit’ 中:3: 錯誤:可變大小的對象不能被初始化
解釋:這種錯誤一般發生在用變量作為數組大小來初始化數組變量;
30、在函數 ‘days’ 中:4: 警告:標量初始值設定項中有多余元素
解釋:在函數‘days’中,在初始化某個數組時,初始化的元素個數多于定義時的元素個數;
31、13:39: 錯誤:數字中有太多小數點
解釋:數字常量中有太多小數點,不符合數字常量的定義;
32、3:9: 錯誤:整數常量的“f”后綴無效 在函數 ‘bonus’ 中:
解釋:“f”后綴只能添加在實型常量之后,加在整型常量后就會引發該錯誤;
33、在函數 ‘count_words’ 中:7: 錯誤:‘c’ 重聲明為沒有外部鏈接
解釋:在函數‘count_words’中,聲明一個新的變量時,使用了已經存在的某個變量的名稱來命名新的變量。C程序在開始執行函數后,首先會根據變 量名和變量類型為聲明的變量分配存儲空間,這就要求所有的變量的名稱必須在本函數內是唯一的。任何對同一個變量名的重新聲明都將是為錯誤;
34、在函數 ‘bonus’ 中:7: 錯誤:break 語句不在循環或開關語句內
解釋:break語句的功能是用來跳出switch結構和循環體,即提前結束循環接著執行循環下面的語句。因此C語言要求break語句不能用于循環語句和switch語句之外的任何語句中;
35、在函數 ‘prime’ 中:5: 錯誤:自增運算中的左值無效
解釋:在函數‘prime’中,調用自增操作符時,操作的對象不符合左值要求;
36、在函數 ‘GetElem_L’ 中:14: 錯誤:下標運算的左操作數既非數組也非指針
解釋:下標運算符(或變址運算符)'[]'要求操作符左側的變量名必須是數組名或指針;
37、在函數 ‘Insert_SqList’ 中:7: 錯誤:expected declaration or statement at end of input
解釋:多數是由于少了匹配的大括號造成的,當然小括號沒有閉合也有可能!編譯的時候找到文件的末尾也沒有找到該出現的東西;
38、在函數 ‘count_words’ 中:3: 警告:從不兼容的指針類型初始化
解釋:在函數‘count_words’中,用非指針類型的值來初始化指針類型變量;
39、在函數 ‘ListInsert_Sq’ 中:6: 錯誤:在 ‘data’ 中缺少數組大小
解釋:在函數‘ListInsert_Sq’中,聲明名為data的數組時,沒有給出數組的大小,如語句char data[];
40、在函數 ‘days’ 中:5: 錯誤:重復的 case 常量
解釋:在函數 ‘days’中,發現了重復出現的case常量。switch/case語句要求每一個case的常量表達式的值必須互不相同,否則就會出現互相矛盾的現象(對表達式的同一個值,有兩種或多種執行方案)。