本文目錄一覽:
- 1、C語言報錯:unknown type name ‘bool’
- 2、C語言中結構體提示未知類型名
- 3、如何用c語言判斷一個未知文件的文件類型
- 4、C語言 四種基本數據類型
- 5、在C語言中,有一個未知類型的變數,如果要把它的值傳遞給i,那麼i如何定義呢?
C語言報錯:unknown type name ‘bool’
報錯的意思:未知的類型名:’bool’
在C語言標準(C89)沒有定義布爾類型,所以會報錯。而C99提供了一個頭文件 stdbool.h 定義了 bool , true 代表1, false 代表0。只要導入 stdbool.h ,就能非常方便的操作布爾類型了。
C語言中結構體提示未知類型名
在全局空間是不允許賦值的,只允許初始化。
就算是內置基本類型都是不允許在函數外賦值的:
int a;
a=1; //不允許
int b=2; //初始化方式就可以
你可以這樣:
typedef struct abcd{uint16_t a;
uint16_t b;
}abcd;
abcd ccck={0}; //初始化方式
或者在函數內賦值:
int main()
{
….
ccck.a=0;
….
}
如何用c語言判斷一個未知文件的文件類型
打開文件容易,讀幾個字元容易,判斷類型較難。
下面程序判斷 .exe .jpg .gif 格式
讀入的前20個位元組在 char s[20] 中。
你願意把它看成10進位,16進位都可以。
輸入形式:
可執行程序名 要判斷的文件名
例如:
ccalb.exe file.gif
#include stdio.h
#includestdlib.h
main(int argc, char *argv[]){
FILE *fin;
char namein[80];
char s[20];
if (argc2) {
printf(“Usage: \007 %s filename\n”,argv[0]);
return 0;
}
strcpy(namein,argv[1]);
fin = fopen(namein,”rb”);
if (!fin){
printf(“Open %s error\n”,namein);
return 0;
}
fread(s,20,1,fin);
fclose(fin);
if (s[0]==’M’ s[1]==’Z’) printf(“It is .exe file\n”);
else if (s[6]==’J’ s[7]==’F’ s[8]==’I’ s[9]==’F’)printf(“It is .jpg file\n”);
else if (s[0]==’G’ s[1]==’I’ s[2]==’F’ ) printf(“It is .gif file\n”);
else printf(“other file”);
return 0;
}
C語言 四種基本數據類型
1、基本類型
short、int、long、char、float、double 這六個關鍵字代表C 語言里的六種基本數據類型。
2、派生數據類型
派生數據類型是具有相同數據類型,並且按照一定順序排列的一組變數的集合。
3、指針類型
指針是一個特殊的變數,它裡面存儲的數值被解釋成為內存里的一個地址。
4、空類型
空類型表示一種未知的類型,不能表示一個真實的變數。
擴展資料:
C語言中整型數據的取值範圍:
1、短整型:類型說明符為short int或short’C110F1。所佔位元組和取值範圍會因不同的編譯系統而有差異。對於16字機,short int 佔2個位元組,在大多數的32位機中,short int 佔4個位元組。
2、長整型:類型說明符為long int或long ,在內存中佔4個位元組,其取值為長整常數。在任何的編譯系統中,長整型都是佔4個位元組。在一般情況下,其所佔的位元組數和取值範圍與基本型相同。
3、無符號型:類型說明符為unsigned。在編譯系統中,系統會區分有符號數和無符號數,區分的根據是如何解釋位元組中的最高位,如果最高位被解釋為數據位,則整型數據則表示為無符號數。
參考資料來源:百度百科-C語言
在C語言中,有一個未知類型的變數,如果要把它的值傳遞給i,那麼i如何定義呢?
//正確的做法是用聯合類型
union
{
char a ;
short b ;
long c ;
double d ;
} i ;
//設x是該未知變數
if (sizeof (x) == sizeof (char))
i.a = (char) x ;
else if (sizeof (x) == sizeof (short))
i.b = (short) x ;
else if (sizeof (x) == sizeof (long))
i.c = (long) x ;
else if (sizeof (x) == sizeof (double))
i.d = (double) x ;
else
return -1 ; //這裡表出錯,但是一般不會出錯
原創文章,作者:ADNF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144654.html