相关疑难解决方法(0)

神秘的线条"??!??!" 在遗留代码中

我正在重构一些非常古老的遗留代码,这些代码充满了错误和非常可疑的做法,至少对于现代标准而言.现在我跑过一条线,我根本无法破译:

p并且k是类型int *

return p??!??!k?p?*p:sizeof(*k):0;
Run Code Online (Sandbox Code Playgroud)

当我看到它时,我无法相信自己的眼睛 - 我知道?运算符,但它的语法bool ? trueresult : falseresult??操作符都没有意义(懒惰的评估确实不适用于此处),我无法在任何地方找到该神秘运算符的引用.

如果有人对此事有所了解,那真的很酷.

c c++ operators

23
推荐指数
2
解决办法
2912
查看次数

什么是\?(反斜杠问号)转义序列是什么意思?

我在Objective-C中写了一个正则表达式.

转义序列\w是非法的并发出警告,因此正则表达式/\w/必须写为@"\\w"; 转义序列显然\?有效的,并且不会发出警告,因此/\?/必须将正则表达式写为@"\\?"(即必须转义反斜杠).

问号是不是像无形的\t\n,那么为什么是\?一个有效的转义序列?

编辑:为了澄清,我不是在询问量词,我问的是字符串转义序列.也就是说,这不会发出警告:

NSString *valid = @"\?";
Run Code Online (Sandbox Code Playgroud)

相比之下,这发出警告("未知转义序列'\ w'"):

NSString *invalid = @"\w";
Run Code Online (Sandbox Code Playgroud)

escaping objective-c nsstring

5
推荐指数
1
解决办法
4116
查看次数

未定义的C/C++符号作为运算符

我注意到字符/符号'''和'@'在C/C++中不用作运算符,

  1. 有谁知道原因或历史原因为何如此?
  2. 如果它真的没用过,使用#define将这些符号定义为另一个运算符/语句是否安全?

c c++ syntax symbols operators

3
推荐指数
1
解决办法
1402
查看次数

标签 统计

c ×2

c++ ×2

operators ×2

escaping ×1

nsstring ×1

objective-c ×1

symbols ×1

syntax ×1