小编And*_*rei的帖子

什么是CMake相当于'configure --prefix = DIR && make all install'?

我知道cmake . && make all install.这有效,但安装到/usr/local.

我需要安装到不同的前缀(例如,to /usr).

什么是cmakemake命令行安装,以/usr代替/usr/local

cmake

362
推荐指数
8
解决办法
18万
查看次数

Google C++风格指南的无例外规则; STL?

谷歌的C++风格指南说"我们不使用例外".关于异常的使用,风格没有提到STL.由于STL分配器可能会失败,它们如何处理容器抛出的异常?

  1. 如果他们使用STL,调用者如何获知分配失败?像push_back()map或map operator[]这样的STL方法不会返回任何状态代码.
  2. 如果他们不使用STL,他们使用什么容器实现?

c++ stl exception

65
推荐指数
6
解决办法
2万
查看次数

在双精度数组上使用memset(,0,)是否合法?

零数组的双精度数(使用memset(,0,))或含有双精度数的结构是否合法?

这个问题意味着两件事:

(1)从C标准的角度来看,这个UB不是吗?(在一个固定的平台上,这个UB怎么样......它只是浮动表示所有......)

(2)从实际角度来看:在intel平台上可以吗?(无论标准是什么).

c standards

37
推荐指数
4
解决办法
1万
查看次数

使用printf跨平台打印64位整数

在Windows中,它是"%I64d".在Linux和Solaris中,它是"%lld".
如果我想编写跨平台printfs打印long long值:这样做的好方法是什么?

long long ll;
printf(???, ll);
Run Code Online (Sandbox Code Playgroud)

c printf

28
推荐指数
1
解决办法
4万
查看次数

编译时断言用于字符串相等

这可以使用模板吗?

有两个字符串常量.它们来自不同模块中的定义.它们必须相等,否则如果它们不相等,我将引发编译时错误.我可以使用模板吗?

#define MY_STRING "foo"
CompileAssertIfStringsNotEqual(MY_STRING, HIS_STRING);
Run Code Online (Sandbox Code Playgroud)

PS我被假设"abc"[0]是常量表达式而被欺骗.它不是.在语言中奇怪的遗漏.如果"abc"[0]是constand表达式,那将是可能的.

c++ templates metaprogramming

17
推荐指数
1
解决办法
4047
查看次数

在Excel的csv文件中制作颜色单元格

我正在生成用于导入Excel的csv文件.Excel没有以前的格式.

a)是否有任何标记可以在csv中为单元格添加颜色定义?

如果在csv中不可能,那么我可以在哪些Excel导入格式中执行(a)和(b)
格式,这些格式最好是基于ascii的,并且易于生成?

b)我可以将列宽定义添加到csv列吗?

csv excel

16
推荐指数
1
解决办法
2万
查看次数

带参数的宏

假设我使用参数定义宏,然后按如下方式调用它:

#define MIN(x,y) ((x)<(y)?(x):(y))
int x=1,y=2,z;
z=MIN(y,x);
Run Code Online (Sandbox Code Playgroud)

鉴于(a)宏作为文本替换,(b)这里的实际args就像正式args,只交换, - 这个特定的z = MIN(y,x)是否按预期工作?如果会的话,为什么?我的意思是,预处理器如何管理不混淆实际和正式的args?

这个问题是关于C编译器的技术问题.这不是c ++问题.
这个问题不建议任何人使用宏.
这个问题与编程风格无关.

c

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

从Windows文件描述符或FILE*中提取文件HANDLE

是否可以从Windows文件描述符或FILE*中提取文件HANDLE?

例如,FILE*在文件描述符之上实现,而文件描述符又在HANDLEs之上实现(在Windows上).可以使用文档化的fileno()函数从FILE*中提取FD.从FD中提取HANDLE可能更具攻击性或更具记录性......

file-io winapi

12
推荐指数
1
解决办法
4851
查看次数

用于计算存储数字n所需的位数的宏

假设我需要编写C宏来返回存储无符号32位整数所需的位数(1..32).(结果等于上限(log2(n)).

我需要它作为编译时计算宏,而不是函数.

我可以

 #define NBITS(n) ((n)&(1<<31)?32:(n)&(1<<30)?31:...
Run Code Online (Sandbox Code Playgroud)

它有效,但相当长.(速度与此无关,计算在编译时).

有没有更短的方法来编写这个宏?最短的?

c macros bits c-preprocessor

11
推荐指数
2
解决办法
3526
查看次数

预处理器指令里面定义?

可能重复:
C预处理器:在#define中使用#if?

是否有任何技巧可以在定义的rhs内部使用预处理程序指令?问题是,预处理器将所有rhs折叠成一条长行.但也许有一招?

在rhs中我想要的例子是

#define MY_CHECK \
  #ifndef MY_DEF  \
  # error MY_DEF not defined  \
  #endif
Run Code Online (Sandbox Code Playgroud)


目的是简短:使用1行快捷方式而不是多行检查序列.

c-preprocessor

10
推荐指数
2
解决办法
9457
查看次数