
C语言
zzxuan3443
小白一个,期待变色中
展开
-
移位与乘除关系
转载 2016-11-07 20:50:10 · 451 阅读 · 0 评论 -
更新顺序文件
如果要同时进行输入和输出操作,必须在其中插入fseek函数调用FILE *fp;fp = fopen(file,"r");struct record rec;while(fread((char *)&rec,sizeof(rec),1,fp) == 1){fseek(fp,-(long)sizeof(rec),1);fwrite((char *)&rec,sizeof(rec)转载 2016-11-03 16:01:50 · 420 阅读 · 0 评论 -
词法陷阱
词法陷阱原创 2016-10-29 18:43:12 · 255 阅读 · 0 评论 -
非数组的指针
char *r;strcpy(r,s);strcat(r,t);以上是错误的1、r指向不明。2、r所指向的地址还应该有内存空间可容纳字符串char r[100];strcpy(r,s);strcat(r,t);以上可能错误:r的空间固定,如果r和s两个字符串长度够大,r存储不下会有错char *r,*malloc();r = malooc原创 2016-11-02 10:33:06 · 274 阅读 · 0 评论 -
边界不对称性
对上面怎么理解呢?i 和 a[10] 都是局部变量,存储在栈区,如果 i 的地址在前 a[10] 的地址在后,那么上面的代码编译通过运行时报栈溢出;如果先分配 a[10] 的空间再分配 i 的空间,则出现以上解释的陷入死循环现象,因为此时 a[10] 是元素 a[9] 的下一个地址,而这个地址里存储的就是 i 。在Ubuntu16下测试不管是int a[10],i;还是I原创 2016-11-02 11:37:27 · 317 阅读 · 0 评论 -
initializer element is not constant
一般出现这种报错原因在于: 全局变量c的值不能在编译时确定,要在执行时确定#include int a = 1;int b = 1;int c = a+b;问题出在int c=a+b;这是不可以的。还有另一种情况报错,就是回调函数的使用,wakeup()是回调函数。错误:registerEventCallback ( wakeup());正确:register原创 2017-11-09 16:51:38 · 297 阅读 · 0 评论 -
multiple definition of XXX
想把全局变量放在某头文件内,这样所有用到该变量的源文件只需要include该头文件就可以了然而头文件里所有的变量都报错multiple definition of XXX虽然有宏#ifndef PROCESS_DATA_H_#define PROCESS_DATA_H_但是不同的C文件在编译的时候是相互独立的,并不会检查其他C文件里是否已经#define PROCESS_DA原创 2017-11-06 18:39:11 · 1142 阅读 · 0 评论 -
expected '=', ',', ';', 'asm' or '__attribute__' before xxx
多种情况汇报这种错误,例如代码中有中文之类的,但是如果C文件里有bool,那么也会报这个错误,因为C++里有bool型,而C里面是没有的!!!如果想用bool需要自定义,false和true也是如此#ifndef bool #define bool int#endif#ifndef FALSE#define FALSE 0#endif#ifndef TRUE#defi原创 2017-11-06 18:30:46 · 6337 阅读 · 0 评论