本文目录一览:
- 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 ; //这里表出错,但是一般不会出错