C++鲜为人知的符号

简介: C++鲜为人知的符号.pdf 1.       引言 这些鲜为人知的C++符号,可直接在代码中使用,但实践中不推荐这么做,可作为茶余饭后的乐趣了解C++的另一面。 虽然它们鲜为人知,但却不是GNU g++独有的,而是C++标准定义的,找一本C++标准书或pdf文档看看,就可以见到它们赫然在目。
img_e25d4fb2f8de1caf41a735ec53088516.pngC++鲜为人知的符号.pdf

1.       引言

这些鲜为人知的C++符号,可直接在代码中使用,但实践中不推荐这么做,可作为茶余饭后的乐趣了解C++的另一面。

虽然它们鲜为人知,但却不是GNU g++独有的,而是C++标准定义的,找一本C++标准书或pdf文档看看,就可以见到它们赫然在目。

2.       少为人知的符号表1

2.1.     符号表

代码中,可用左边的替代右边的:

可选的符号

可替代的常见符号

 

{

注意不能替代函数定义的{

%>

}

注意不能替代函数定义的}

<:>

[

 

:>

]

 

%:

#

 

%:%:

##

 

and

&&

 

or

||

 

xor

^

 

bitor

|

 

compl

~

 

bitand

&

 

and_eq

&=

 

or_eq

|=

 

xor_eq

^=

 

not

!

 

not_eq

!=

 

2.2.     代码示例

// GNU g++编译方法:g++ -g -o a a.cpp

#include

 

int main()

{

        int N = 2;

 

        for (int i=0; i

       

                printf("%d\n", i);

        %>

 

        return 0;

}

3.       少为人知的符号表2

三个字符等同单个字符,GNU g++编译时需要指定编译参数“-trigraphs”。

3.1.     符号表

可选的符号

可替代的常见符号

??=

#

??/

\

??’

^

??(

[

??)

]

??

{

??>

}

??!

|

??-

~

3.2.     代码示例

// 注意使用GNU g++编译以下代码,需要指定编译参数“-trigraphs

// g++ -g -o b b.cpp -trigraphs

#include

 

// 下一语句完全等同于:#define index(array, i) array[i]

??=define index(array, i) array??(i??)

 

int main()

{

        int m[] = { 3, 7 };

        printf("m[0]=%d, m[1]=%d\n", index(m, 0), index(m, 1));

        return 0;

}

附:C++59个关键词列表

asm

do

if

return

typedef

auto

double

inline

short

typeid

bool

dynamic_cast

int

signed

typename

break

else

long

sizeof

union

case

enum

mutable

static

unsigned

catch

explicit

namespace

static_cast

using

char

export

new

struct

virtual

class

extern

operator

switch

void

const

false

private

template

volatile

const_cast

float

protected

this

wchar_t

continue

for

public

throw

while

default

friend

register

true

 

 

 

 


相关文章
|
5月前
|
C++
40 C++ - 符号重载总结
40 C++ - 符号重载总结
23 0
|
1月前
|
算法 编译器 C语言
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
42 1
|
1月前
|
C++
C++运算符号重载详解
C++运算符号重载详解
|
1月前
|
编译器 C语言 C++
深入探索C/C++预处理世界:预定义符号与宏定义的全方位指南
深入探索C/C++预处理世界:预定义符号与宏定义的全方位指南
|
5月前
|
C++
38 C++ - 函数调用符号()重载
38 C++ - 函数调用符号()重载
18 0
|
8月前
|
C++
|
10月前
|
C语言 C++
C++ 链接库顺序导致的符号未定义问题
C++ 链接库顺序导致的符号未定义问题
84 0
|
11月前
|
C++
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
59 0
|
Linux 数据安全/隐私保护 C++
C++解析一些特殊符号tab、换行符号
C++解析一些特殊符号tab、换行符号
201 1
C++解析一些特殊符号tab、换行符号