- 题解
溢出代码
- @ 2025-10-12 11:28:36
#include // 最基础的输出函数,兼容性100% #include <unistd.h> // 标准延迟函数(若在Windows用Sleep,见注释)
// 【所有效果都在这里改!】 #define START 10 // 起始值:65=A,48=0,33=!,97=a #define COUNT 12 // 每行显示多少个(数字/字符) #define SPEED 100 // 延迟毫秒(数值越大越慢) #define MODE 0 // 0=显示字符,1=显示数字
int main(void) { // 标准main声明,无任何警告 unsigned char c = (unsigned char)START; // 明确无符号,无类型问题
while (1) { // 标准无限循环,所有编译器支持
for (int i = 0; i < COUNT; i++) {
if (MODE == 0) {
putchar((int)c); // 字符输出,显式转int符合putchar要求
} else {
printf("%3d ", (int)c); // 数字输出,占3位对齐
}
}
putchar('\n'); // 换行,无缓冲问题
// 溢出处理:255+1→0,完全符合标准
c = (c == 255) ? 0 : c + 1;
// 延迟:Linux/Unix用usleep(微秒),Windows替换为Sleep(SPEED);
usleep(SPEED * 1000);
}
return 0; // 形式上的返回,不影响运行
}
