经常看到C头文件包含extern "C"

/* b_ptrdiff.h - base type ptrdiff_t definition header */

#ifndef __INCb_ptrdiff_th
#define __INCb_ptrdiff_th

#ifdef __cplusplus
extern "C" {
#endif

#ifndef _PTRDIFF_T
#define _PTRDIFF_T
typedef long ptrdiff_t;
#endif /* _PTRDIFF_T */

#ifdef __cplusplus
}
#endif

#endif /* __INCb_ptrdiff_th */

extern "C"防止函数上的名称损坏,但它是否也防止变量和类型声明上的其他接口问题?

初冬微笑已冻僵初冬微笑已冻僵提问于
pyjpl回答于
已采纳

一些编译器(它也是罕见的,但标准所要求的)实现联动语言的函数类型,不只是名字,所以typedef void f();extern "C" { typedef void f(); }声明不同的类型。

回答过的其他问题

md5sum无法使用回车字符

正如对问题的评论中所指出的,文件名末尾的字符用于回车符(\r)。 解决此问题的更直接的方法是使用tr或sed管道md5sum: cat file_with_checksums.txt | tr -d '\r' | md5sum -c - 要么: sed $'s/\r//' ...... 展开详请

从字符串变量解析数据

我已经更新了我的答案。请再检查一次 var dataFormated = []; var index = 0; for (var i in resData) { dataFormated[index] = { id: resData[i].id, ...... 展开详请

如何忽略具有特定值的CSV文件中的行?

使用pandas会使您的生活更轻松,因为该csv模块不适合粒度数据操作。如果要根据特定列的值删除行,可以将原始csv初始化为数据框,并创建一个只包含所需值的新数据框: import pandas as pd start_data = pd.read_csv('./data_s...... 展开详请

在绘图区域外添加文本

已采纳
我不确定你要做什么,所以这可能会或可能不会很好地概括。 也就是说,一种可能性是使用annotatewith coord_cartesian(clip = "off")来允许绘图区域之外的文本。 ggplot(mtcars, aes(mpg, cyl, color = vs)) ...... 展开详请

在C中操作动态分配的2D字符数组

已采纳
您可以从字符串中删除字母,因为您只能缩短字符串。 代码可能只是: void removeOccurences2(char** letters, int strs, int size, char letter){ int i,j,k; // loop over t...... 展开详请

在c ++中编码已解码的URL

在POSIX中,您可以直接打印UTF8字符串: std::string utf8 = "\xc3\xb6"; // or just u8"ö" printf(utf8); 在Windows中,您必须转换为UTF16。使用wchar_t而不是char16_t,即使char16_...... 展开详请

关于作者

所属标签

扫码关注云+社区