标签: macros

保存vim宏

有谁知道如何正确保存/重用vim编辑器内记录的宏?

vim macros editor

157
推荐指数
5
解决办法
4万
查看次数

__FILE__宏显示完整路径

C中可用的标准预定义MACRO __FILE__显示文件的完整路径.有没有办法缩短路径?我的意思是代替

/full/path/to/file.c
Run Code Online (Sandbox Code Playgroud)

我知道了

to/file.c
Run Code Online (Sandbox Code Playgroud)

要么

file.c
Run Code Online (Sandbox Code Playgroud)

c macros file path

152
推荐指数
14
解决办法
12万
查看次数

#pragma曾经是C++ 11标准的一部分吗?

传统上,避免C++中多个头部包含的标准和可移植方法是使用#ifndef - #define - #endif预编译器指令方案,也称为宏保护方案(参见下面的代码片段).

#ifndef MY_HEADER_HPP
#define MY_HEADER_HPP
...
#endif
Run Code Online (Sandbox Code Playgroud)

然而,在大多数实现/编译器中(见下图),有一个更"优雅"的替代方案,其功能与调用的宏保护方案相同#pragma once.#pragma once与宏保护方案相比具有几个优点,包括更少的代码,避免名称冲突,有时提高编译速度.

在此输入图像描述

做了一些研究,我意识到尽管#pragma once几乎所有已知的编译器都支持指令,但是指令是否#pragma once是C++ 11标准的一部分还是存在紊乱.

问题:

  • 有人可以澄清#pragma once指令是否属于C++ 11标准的一部分吗?
  • 如果它不是C++ 11标准的一部分,是否有计划将其包含在以后的版本中(例如,C++ 14或更高版本)?
  • 如果有人可以进一步详细说明使用这些技术中的任何一种(即,宏观防护对比#pragma once)的优点/缺点,那也是很好的.

c++ macros header-files c++11 c++14

137
推荐指数
2
解决办法
4万
查看次数

当我们定义宏时,do while(0)有什么用?

可能重复:
C/C++宏中的Do-while和if-else语句

我正在阅读linux内核,我发现了很多像这样的宏:

#define INIT_LIST_HEAD(ptr) do { \
    (ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
Run Code Online (Sandbox Code Playgroud)

为什么他们使用这个而不是简单地在{}中定义它?

c macros linux-kernel

125
推荐指数
2
解决办法
5万
查看次数

Q_OBJECT宏有什么作用?为什么所有Qt对象都需要这个宏?

我刚开始使用Qt并注意到所有示例类定义都将宏Q_OBJECT作为第一行.这个预处理器宏的目的是什么?

c++ macros qt

125
推荐指数
4
解决办法
7万
查看次数

是否有Eclipse的宏录制器?

是否有一个很好的Eclipse插件用于录制和播放宏?

我试过这个,但它没有给我带来任何好处 - 好像它还没有为黄金时间做好准备.

我知道编辑器模板,但我正在寻找可以用来记录我的击键然后对一大堆文本应用多次的东西.

这似乎是IDE中的一个奇怪的漏洞.我错过了一些内置设施吗?

java eclipse ide macros editor

114
推荐指数
6
解决办法
5万
查看次数

113
推荐指数
5
解决办法
7万
查看次数

记录的宏存储在Notepad ++中的哪个位置?

我录制了一个我想与我的同事分享的宏.

这些录制的宏保存在哪个位置,以便我可以将其添加到他的机器中?

如果感兴趣,宏用于获取值列表并添加引号和逗号,以便可以在WHERESQL查询(WHERE x IN ('value1','value2','value3'))的子句中使用它.

macros file notepad++ file-location

113
推荐指数
3
解决办法
10万
查看次数

如何从预处理器宏中识别平台/编译器?

我正在编写一个跨平台的代码,它应该在linux,windows,Mac OS上编译.在窗户上,我必须支持视觉工作室和mingw.

有一些特定于平台的代码,我应该放在#ifdef .. #endif环境中.例如,这里我放置了win32特定代码:

#ifdef WIN32
#include <windows.h>
#endif
Run Code Online (Sandbox Code Playgroud)

但是我如何识别linux和mac OS?我应该使用什么定义名称(或等)?

c++ macros cross-platform c-preprocessor

112
推荐指数
4
解决办法
10万
查看次数

iOS如何通过宏检测iPhone X,iPhone 6 plus,iPhone 6,iPhone 5,iPhone 4?

如何通过宏检测设备模型?我曾经使用过这样的东西但模拟器上的结果总是IS_IPHONE_5

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_RETINA ([[UIScreen mainScreen] scale] == 2.0)  
Run Code Online (Sandbox Code Playgroud)

iphone macros detect

110
推荐指数
9
解决办法
8万
查看次数