You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K&R习题1-12代码在Xcode中报空字符常量等警告的原因排查

报错原因分析

你遇到的两个警告都是代码里的空字符常量导致的:

  • 在C语言中,字符常量必须被单引号包裹且包含至少一个字符(可以是普通字符或转义字符,比如'a'、'\n')。而你代码里的c == ''是一个空的字符常量,完全不符合C语言语法规则,所以Xcode会报「Empty character constant」(空字符常量)警告。
  • 这个语法错误会导致编译器无法正确解析后续的表达式逻辑,进而触发「Expected Expression」(期望表达式)警告。

从代码逻辑来看,这里原本应该判断的是空格字符,所以需要把''改成' '(单引号中间加一个空格),这样就能匹配输入中的空格分隔符,同时解决两个警告问题。

另外补充:你当前的代码逻辑还有分支写反的问题——判断空白字符的if块里,应该是遇到空白字符时,若处于单词内(state=IN)就换行并切换到OUT;若处于单词外(state=OUT)则不输出(避免连续空白输出多个换行)。非空白字符时才需要切换到IN并输出字符。不过这属于逻辑问题,不是当前警告的直接原因。

内容的提问来源于stack exchange,提问作者peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:23