[c/c++]在使用循环去查询消息等操作时加入Sleep()
加入比较短时间的Sleep()一般对时效性影响不大,但能极大地降低CPU占用。 比如,这里我们用coolfun::UI_suspend()等待按键函数的源码来举例: #include<conio.h> #include<iostream> #include<windows.h> us...
加入比较短时间的Sleep()一般对时效性影响不大,但能极大地降低CPU占用。 比如,这里我们用coolfun::UI_suspend()等待按键函数的源码来举例: #include<conio.h> #include<iostream> #include<windows.h> us...
猜测原因: 给数组分配内存大小是在编译过程,编译只在各个文件自己里面,所以编译器不知道外部文件定义的常量值是多少,在连接过程才会知道,所以编译不通过报错。 解决方法: 那当然是使用强大的宏定义来代替它了。
循环内如果有switch的话,switch内的break无法用于结束循环,而是会终止switch的执行。 解决方法: 在switch内需要结束循环时搞一个控制值,用于控制循环如 for(;i;); 中的i,一开始置1等非0值令循环可以执行,在需要结束循环...
无符号整形(unsigned) 和 有符号整形(int) 的比较会默认强制转换为 无符号类型(unsigned) 先来看示例代码,这里以 int a = -1 和 unsigned int b = 77 来做大小比较: #include <iostream> using namespace std; ...
首先要明确的是,数组名和指针还是有区别的数组名本身就是一个常量地址,它是数组的首地址,并且不可修改,而数组名本身不占空间。指针是一块空间,它存放了一个地址。在32位系统中,由于地址是4个字节大小,因此一个指针占用的空间...
问题 msgget()一直失败返回-1 如果你使用的是win10的子系统,则目前来看会有这个问题,而且几乎在每一台机子上都有这个问题,建议使用虚拟机VMware,或者升级win11。 消息发送中英文都乱码 如果连发送英文字母都乱码...
柔性数组 在C99标准之后,在结构体中最后一个元素允许是未知大小的,称之为柔性数组 一般定义为:类型 变量名[]注意:结构体中,柔性数组前必须有变量柔性数组必须定义在结构体的最后示例: struct CoolArr_s{ int len; c...
问题 按ctrl c给父进程传信号后,父进程会发送信号给子进程,为什么子进程没有反应?而只有修改父进程给子进程发送的信号为SIGINT时才会有反应? 原因:由于在shell中运行了父进程,父进程又创建了两个子进程,此时两个子进程...
问题 实验示例代码中,调用execl()时,第二个传参为什么会是可执行程序名:execl("/bin/ls", "ls", "-l", "-color", NULL) 猜测原因:可以更好地模拟在shell中执行时的传参,防止传参失效。剖析:我们先来看看 execl() 的定义...
问题 有的时候,程序运行后的输出结果会在cmd的输出提示之后: 本实验中是父进程创建了两个子进程,然后父进程输出 a 后结束,子进程分别输出 b c 后结束。出现该问题其实就在于父进程可能比子进程先结束,此时cmd提示就会...