EXTERN(void) jpeg_fdct_8x4
JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
在这里,我有四个问题:
语法 Extern(Void) 是什么意思?返回值是void?这是通常的语法吗?
我在第三方代码中看到非类成员函数带有 static 关键字、inline 关键字、no 关键字和 extern 关键字。我知道 static 关键字将函数的范围限制为文件。如果我使用“无关键字”会怎样?我是否必须在其他文件中使用 extern 才能使用该函数,还是可以在指定函数声明后直接从另一个文件调用该函数?
我是否需要在 C++ 中使用 extern 来调用 C 接口(interface)?
内联函数的默认范围是多少?
最佳答案
EXTERN(n)
是一个预处理器定义,可以在 jmorecfg.h
中找到:
#define EXTERN(type) extern type
所以上面的语句扩展为
extern void ...
关于 extern
的文章在 C 代码中,check out this answer.
block 引用>What happens if I use "no keyword"?
在这种情况下,范围不受限制。非静态全局函数的名称对所有编译单元中的链接器都是可见的,这意味着如果不同的模块使用相同的函数名称,则会发生名称冲突。
block 引用>3) Do I need extern in C++ only to call interface with C?
您可能指的是
extern "C" {}
它指示编译器使用 C 调用约定。是的,您需要它来从 C++ 调用外部 C 函数。block 引用>4) What is the default scope of inline functions?
与未声明的范围相同
inline
。
关于c++ - 我们需要 extern 来调用 C++ 中的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12136417/