其他

作者: yuerxiaoshui | 来源:发表于2020-10-29 09:28 被阅读0次

1. 关键字缩写

RVO return value optimizer
NRVO named return value optimizer
RAII Resource Acquisition Is Initialization
SFINAE Substitution Failure Is Not An Error

2. #pragma pack

自然对界是指按结构体的成员中size最大的成员对齐。

#pragma pack 规定的对齐长度,实际使用的规则是:
结构,联合,或者类的数据成员,第一个放在偏移为 0 的地方,以后每个数据成员的对齐,按照 #pragma pack 指定的数值和结构体的自然对齐长度中比较小的那个进行。

也就是说,当 #pragma pack 的值等于或超过所有数据成员长度的时候,这个值的大小将不产生任何效果。

结构体的对齐,按照结构体中size最大的数据成员和 #pragma pack 指定值之间,较小的那个进行。

3. extern "C''

extern "C'' 的主要作用就是为了能够正确实现 C++ 代码调用其他C语言代码。加上 extern "C'' 后,会指示编译器这部分代码按 C 语言的进行编译,而不是 C++ 的。由于 C++ 支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而 C 语言并不支持函数重载,因此编译 C 语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

4. dllimport dllexport

可以使用 dllimport 或 dllexport 特性来声明 C++ 类。 这些形式表示已导入或导出整个类。 以这种方式导出的类称为可导出类。

5. 预定义符号

./ 表示当前目录
../ 表示上级目录
../../ 表示上上级目录
__FILE__ 当前源代码文件名(完整路径)
__FUNCTION__ 当前源代码函数名
__LINE__ 当前源代码行号
__DATE__ 当前编译日期
__TIME__ 当前编译时间
__TIMESTAMP__ 当前系统时间戳
__STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1
__cplusplus 当用C++编译程序编译时,其就会被定义

6. 宏指令

# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个 # if...# else 条件编译块
#error 停止编译并显示错误信息
#pragma 没有正式的定义。编译器可以自定义其用途。典型的用法是禁止或允许某些烦人的警告信息
#line directive modifies the reporting position for the compiler, and is used by code generating software to help the programmer identify the issue in the original source. It can be used by anyone to help redirect error reporting to be more informative. (The #line directive tells the preprocessor to change the compiler's internally stored line number and filename to a given line number and filename)

相关文章

  • 其他都是其他

    最近看到一个新闻报道,有些人沉迷在电视剧中,无法自拔,沉迷于剧中人的颜值,沉迷于剧中人的生活,沉迷于剧中人对待爱人...

  • 其他

    01吃完饭回来的路上看到大一时的英语老师,依然是酷酷的样子,白头发却多了很多。这两年对我来说是沧海桑田,对其他人又...

  • 其他

    如果不想聊時政聊聊愛情也是可以的首先你的荷爾蒙得调高這樣才能體會到愛情之美妙 其次你得遇到一個人比如我這樣的咱倆得...

  • 其他

    ContentProvider相关 涉及到拍照相关的问题可参照此example TakePicAndGallery...

  • 其他

    待这一年的尽头,我们来向后看看,再来写下它们。

  • 其他

    1.数--二叉查找树 2.反向索引 3.傅里叶变换 4.并行算法 5.MapReduce(分布式算法) 映射函数m...

  • 其他

    HydrogenOS 3.0 |XDA |下载 Flyme 6 |下载 Mi-Room |下载

  • 其他

    Git常用命令mac常用命令Linux 常用命令汇总Linux 常用命令0Linux 常用命令1--ls命令

  • 其他

    本网讯(通讯员任智琪 许唯佳)3月28日下午,武汉市东湖新技术开发区疾控中心刘丽、姜丹两位专家应邀在图书馆3号报告...

  • 其他

    使用Charles进行HTTPS抓包1.配置2.Charles抓取https时一直显示unknown

网友评论

      本文标题:其他

      本文链接:https://www.haomeiwen.com/subject/dtfkvktx.html