Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 目标-C/C++;常数_C++_Objective C_Constants - Fatal编程技术网

C++ 目标-C/C++;常数

C++ 目标-C/C++;常数,c++,objective-c,constants,C++,Objective C,Constants,编辑:我的例子可能造成了一些混乱。我更改了下面的示例,以反映我想要实现的目标。希望这更清楚 我试图在objective-c代码中定义一个常量。我正在使用标准定义来实现这一点。例如: #define bluh "a" 我想定义另一个像这样的常数 #define blah bluh +@"b" 编译器抛出一个错误(正确地说是这样的)“二进制+的操作数无效”。我怎样才能让它工作?谢谢你的帮助 我也尝试过这样的Objective-C方法: NSString *const A =@"a"; NSStr

编辑:我的例子可能造成了一些混乱。我更改了下面的示例,以反映我想要实现的目标。希望这更清楚

我试图在objective-c代码中定义一个常量。我正在使用标准定义来实现这一点。例如:

#define bluh "a"
我想定义另一个像这样的常数

#define blah bluh +@"b"
编译器抛出一个错误(正确地说是这样的)“二进制+的操作数无效”。我怎样才能让它工作?谢谢你的帮助

我也尝试过这样的Objective-C方法:

NSString *const A =@"a";
NSString *const B = [NSString stringWithFormat:@"%@%@",A,@"b"];
但这给了我另一个错误“初始值设定项元素不是常量” 任何帮助都将不胜感激


欢呼,

< P>我不知道C++中的目标C,相邻字符串文字是串联的,所以使用它是足够的:

#define blah bluh "b" #定义废话“b”
顺便说一句,标准做法是尽可能使用大写作为预处理器定义,而不是出于其他目的,最大限度地减少意外替换的可能性。

在标准c/c++中,您可以通过将文本字符串彼此相邻来连接,例如,
“字符串一-”字符串二将变为
“字符串一字符串二”
在编译器按自己的方式处理之后

不确定这是否适用于一开始使用的“@”符号,但请尝试执行以下操作:

#define bluh "a"
#define blah bluh @"b"

没有Objy-C的很多经验,但希望他们能保持这一部分的互操作。

我不介意它是C++,但是这个解决方案是有效的。谢谢史蒂芬。“C++程序中的任何地方——完全独立于任何预处理器使用——C++编译器将连接文字。例如,所有有效的C代码都是有效的Objective-C代码,并且行为是相同的。语言Objective-C是对C的一个难以置信的最小扩展。也就是说,提问者希望完全按照你的建议去做,但没有
@
符号。在Objective-C中,如果你使用@前缀,它也可以工作@“1”“2”“3”与@“123”相同。