在C和C++中,嵌入的最基本的
main
函数是:
int main(void) {
int i = 0;
while(1) {
i++;
}
}
但是,由于
i
是一个整数,它不会在某个时候溢出吗?
此外,在等待特定中断时使用相同的策略(使用
while(1) i++
)循环是否安全?
它确实溢出了具体的实现方式。
将有符号整数类型定义为的实现 取模不需要检测整数溢出
所有现代计算机都将有符号整数定义为模。
我会采取这种方法:
#include <stdio.h>
#include <stdint.h>
int main()
{
uint16_t i = 1;
while(i>0)
{
i++;
}
printf("i overflowed at: %u sizeof(i): %u\n", i-1, sizeof(i));
return 0;
}