gpt4 book ai didi

c - 多字符常量,我做错了什么? C

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:23 24 4
gpt4 key购买 nike

if( ( !valInput(st1,0) ) || (st1[0] < '0') || (st1[0] > 'M-1') )

收到警告:多字符常量在 M 字符上,在“0”上……为什么?

M 是一个定义的变量,在编译中被数字 9 替换\

 #define M 9

我的用法是检查第一个字符是偶然小于'0'还是大于'8'(对于 8 个字符,我必须使用 M 定义)

我们将不胜感激任何帮助。谢谢

最佳答案

由于 M 在您的代码中被引用,预处理器不会替换它。 (此规则适用于单字符串和引号字符串)。

因此编译器看到 'M-1' 这是一个多字符常量文字。

如果您想将 st1[0] 与 '8' 的 ascii 值进行比较,那么最简单的方法可能是使用 M - 1 + '0'

关于c - 多字符常量,我做错了什么? C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com