我想定义大字符串表示宏中的多行文本。但是给出了错误。 我试过这个
#define kTerms&Conditions(message) [NSString stringWithFormat:@"ready to get:\"%@\".Find out how here.", message];
以上是演示文字,实际上非常冗长。但那也是警告。 我的文字就像
@"USER TERMS AND CONDITIONS
PLEASE READ THIS BEFORE ACCESSING THE SERVICE. BY ACCESSING THE , YOU AGREE TO
BE BOUND BY THE TERMS AND CONDITIONS BELOW. IF YOU DO NOT WISH TO BE BOUND BY
THESE TERMS AND CONDITIONS, YOU MAY NOT USE THE SITE.
1. ALL PERSONS USING THIS SITE AGREE TO REPORT (MANIFESTS) IN ACCORDANCE WITH
49 U.S.C. SECTION 4909(C), 19 PART 122, 8 U.S.C. SECTION 1, AND 8 C.F.R.
PARTS 217, 231, AND 251.
2. ELIGIBILITY FOR USE OF AND ACCESS TO THIS MCL/APIS SITE IS SUBJECT TO FINAL
APPROVAL AND ACCEPTANCE BY UNIVERSAL.
以上是我想在Macro中显示的文字。 不允许使用非ASCII字符,从而产生错误。 请指导。
答案 0 :(得分:1)
kTerms&Conditions
不是有效的宏名称,它实际上是两个标识符,由&
标记分隔。您收到错误的原因是编译器假定您需要:
#define kTerms &Conditions ...
但您还没有在宏名称和定义之间获得所需的分隔符。
我建议您使用kTermsAndConditions
。
更深入地说,C99 section 6.4.2
对必须被视为标识符的内容设置了特定限制。它基本上是字母字符,数字和下划线,附带条件是它不能以数字开头。
实际上小比这更复杂,因为标准允许UCN(主要是来自其他语言数组的字母字符)和"其他实现定义的字符&# 34;但如果你坚持上一段的指导原则,你就会安全。