c - 程序发出蜂鸣声,即使它不包含\a 任何地方

标签 c for-loop ascii

即使我没有将 \a 添加到我的代码中,我的电脑还是发出了哔哔声。为什么?

程序:

#include <stdio.h>
#include <limits.h>
#include <float.h>
#include <stdlib.h>

#define START_CHAR ' '
#define END_CHAR 'DEL'

int main(void)
{  /* This code prints characters on keyboard.*/

   /* declaration */

  int char_code;

  for (char_code=(int)START_CHAR; char_code<=(int)END_CHAR; char_code=char_code+1)
    printf("%c", (char)char_code);

  printf("\n");

  return(0); 
}

最佳答案

'DEL' 不是有效的字符常量。它最终等于 4474188。并且由于您将 char_code 定义为 int,因此循环从 32(空格的 ASCII 代码)变为 4474188。所以它多次循环整个字符集。

您应该改用 0x7F

关于c - 程序发出蜂鸣声,即使它不包含\a 任何地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31990118/

相关文章:

c++ - 为什么 MinGW 将 Win API 函数定义为宏?

从自动释放池中快速退出循环?

java - 集合迭代: For Syntax vs Iterator : Reusing Temporary Variables

javascript - 设置cookie时返回base64编码值(Javascript)

c - 使用 scanf 的选择性输入。可能只读取 ascii 0x79 和 0x6e

java - 在 unix 机器上渲染美国单位分隔符

c - 如何从一个数组中复制值并将其分配给c中的另一个数组?

c - 多线程光线追踪

c - 在 8 位 UART 上发送 16 位值

python - 列表的循环值