c/c++
z5z5z5z56
投奔自由
展开
-
服务器和客户端结构体定义内容顺序不一致导致的问题
由于增加一个数据info_type,而结构体定义顺序不一致,发现的这个问题,无意中修改定义如下:在服务器如下定义typedef struct chat{ int chat_type; //群聊0 还是私聊1 int info_type;//第二个 int user_id; char user_name[30]; char chat_msg[300];}CHAT_PACKET;在客户端如下定义:typedef struct chat{ int chat_type; //群聊原创 2020-08-08 11:15:29 · 547 阅读 · 0 评论 -
c++赋值(赋值为函数返回值)语句的返回值问题
不知道为什么,之前一直脑子里有一个误解,赋值语句的返回值应该是1(成功赋值)或0(赋值失败)今天其实在学linux的时候突然揣摩了一下代码才发现这个问题:if ((dir = opendir("/home/ljz/Desktop")) == NULL)opendir返回空说明目录打开失败这句代码里面==NULL的判断在(dir = opendir("/home/ljz/Desktop"))这个赋值语句之外判断,这说明了赋值语句的返回值就是变量所赋的值所以才能这么写基础不牢地动山摇呀QAQ原创 2020-07-19 16:05:49 · 794 阅读 · 0 评论 -
关于extern声明后,变量值和定义值不一样的问题及解决办法
软件:vc6.0语言:c问题描述:在main文件定义了一个全局变量int g_score=0;//分数在另外一个文件中声明 extern int g_score希望在含有声明extern int g_score的这个文件中对g_score进行g_score+=10操作结果发现第一次走这个语句打印出来的是11而不是10!进一步打印+=10之前的g_score,发现竟然等于1而不是主文件定义的0!解决方法:调换定义和声明,即在要操作使用g_score的这个文件中定义全局int g..原创 2020-05-07 21:53:55 · 1218 阅读 · 1 评论