特殊工具与技术[大结局]--固有的不可移植的特征[下] 三.链接指示:extern “C” C++ 程序有时需要调用用其他程序设计语言编写的函数,最常见的一语言是C 语言。像任何名字一样,必须声明用其他语言编写的函数的名字,该声明必须指定返回类型和形参表。编译器按处理普通 C++ 函数一样的方式检查对外部语言函数的调用,但是,编译器一般必须产生不同的代码来调用用其他语言编写的函数。C++ 使用链接...
分类:
编程语言 时间:
2014-08-16 09:45:40
阅读次数:
245
DES加解密算法是一个挺老的算法了,现在给出它的C语言版。des.h 1 #ifdef __cplusplus 2 extern "C" { 3 #endif 4 5 void setKey(const char key[8]); 6 char* des(const char datas[]);.....
分类:
其他好文 时间:
2014-08-15 19:23:39
阅读次数:
324
网络传输经常用base64编码的数据,因此我们需要将其解码成正常字符集合。 base64.h 1 #ifdef __cplusplus 2 extern "C" { 3 #endif 4 5 char * base64_encode( const unsigned char * binda...
分类:
其他好文 时间:
2014-08-15 19:14:09
阅读次数:
167
a storage class can only be specified for objects and functionsextern修饰一个struct报错,错误原因如上,C++中存储类修饰符有auto、register、extern、static,这几种修饰符只能修饰对象或者函数,这里用ex...
分类:
系统相关 时间:
2014-08-15 17:27:59
阅读次数:
230
extern "C" 一句话概括 extern "C" 的作用:告诉 C++ 编译器,编译某段代码时不要进行名字重整,以此达到 C++ 中调用 C 函数,或者 C 中调用 C++ 函数的目的;
之所以 C++ 会有名字重整,是因为 C++ 为了实现重载等特性,需要在编译期把函数名重整,针对不同的参数...
分类:
其他好文 时间:
2014-08-15 12:46:38
阅读次数:
201
const: 1 定义变量 ,如下写法都可以: TYPE const ValueName = value; const TYPE ValueName = value; 2 当作为全局变量并且在他文件也想使用时:(默认const具有局部性) 1.CPP :extern const TYPE Valu....
分类:
其他好文 时间:
2014-08-15 12:23:48
阅读次数:
205
注意这里的C调用C++或者C++调用C意思是.c文件中调用.cpp文件中代码,或者相反。集成开发环境如VC++6.0或者vs都是以文件后缀来区别当前要编译的是C代码还是C++代码,然后采用响应的编译、调用协议等。使用extern "C" 主要是因为C编译器编译函数时不带参数的类型信息,只包含函数的符...
分类:
编程语言 时间:
2014-08-14 20:06:29
阅读次数:
141
.h头文件中,只能存在变量或者函数的声明, 而不要放定义。即,只能在头文件中写形如:extern int a;和void f();的句子。这些才是声明。如果写上int a;或者void f() {}这样的句子,那么一旦这个头文件被两个或两个以上的.cpp文件包含的话,编译器会立马报错。(关于exte...
分类:
编程语言 时间:
2014-08-13 18:39:16
阅读次数:
220
原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举...
分类:
其他好文 时间:
2014-08-13 14:46:46
阅读次数:
210
malloc函数原型:extern void *malloc(unsigned int num_bytes);用法:#include 功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释...
分类:
其他好文 时间:
2014-08-13 14:22:46
阅读次数:
242