1.在纯的.c文件中,例如struct Stu,之后不可以只使用Stu作为关键字来表示这个定义的结构体类型,一定要使用struct Stu一起作为类似int这种关键字来定义或者获取size.

2.函数之中存在互相调用,例如b调用a,那一定要把a定义在b前面不然会抱错。

3.void函数也是可以有return命令的,不过不返回任何值,只是return;,用来退出这个void函数,例如:

void Save()
{
	FILE* pfw = fopen("data.lv", "a");
	if (pfw == NULL)
	{
		printf("Save failed!");
		return;
	}
	int i = 0;
	while (Student[i].ID != 0)
	{
		if (Student[i].ID != -1)
		{
			fwrite(Student, 1, sizeof(struct Stu), pfw);
		}
		i++;
	}
	fclose(pfw);
}

  和文件命令的函数配合很好用

4.puts("");很方便 记住他自带/n功能

5.int a=b>c;

当b>c成立时a=1,否则a=0

6.if(int a)

只有当a等于零的时候if不执行,当a等于-1时if是成立的

7.fwrite写入和fread要读入的数据文件,用txt打开方式是看不懂是什么东西的,因为其保存方式为二进制格式

8..c文件中写完代码最后要空一行,因为在linux中\n代表结束符(在windows代表分隔符),如果文件的结尾没有\n 就不视为一个完整的文件,也不利于文件的拼接(两个文件拼接,第二个文件的第一行会拼接成和第一个文件最后一行在一起),另外最好也要在预编译命令和代码之间空一行,因为c文件运行包括编译(compile)和连接(link),空一行相当于插入一个\n,便于连接

9.无符号数和有符号数,所占内存空间一样大,但是能表示的数的范围不一样大,无符号数能表达的值的绝对值更大,因为他不能表示负数

10.本机内存中0x1234  12为高位  34为低位

11.不同的机器有不同的汇编语言,所以不同的平台,汇编不可移植。但是不同机器的c源码基本相同,所以c语言的移植性好。

12.Implicit declaration of function 'xxxx' is invalid in C99” 警告,该警告明确告诉我们在C99的规范中,不允许出现隐含声明的用法。这是C99规范中增加的规则,不过即便不遵守此规则,也仅仅是一个警告而已。
什么是隐含声明呢,也很简单,就是你调用函数的c文件中,没有正确包含对应的头文件。

13.if(*a==b)不行的话,换if(a==&b),其中a是函数中的指针类型的形参,不知道为什么

posted on 2017-06-07 22:15  稳住能赢  阅读(235)  评论(0编辑  收藏  举报