• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

谁能解释一下头文件?谢谢

handlehandle 2002-05-15 12:29:22
谁能解释一下头文件中:extern "C" ,#ifdef __cplusplus的意思,他们起到什么作用?

#if !defined(RLE_H)
#define RLE_H

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C"
{
#endif

// Function Prototypes
DWORD RunLength(BYTE *pInput,DWORD dwCount);
DWORD RunLengthEncode(BYTE *pInput,DWORD dwCount,BYTE *pOutput);
DWORD RunLengthDecode(BYTE *pInput,BYTE *pOutput);

#ifdef __cplusplus
}
#endif
#endif
...全文
76 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ShallonXu 2002-05-15
#ifdef __cplusplus这个是判断是否用C++编译器来编译的,如果是用C++编译器编译,
那么就加上
extern "C"
{

这是一种条件编译指令
回复
handlehandle 2002-05-15
extern "C" 呢?是什么说明?
回复
liyangyang 2002-05-15
条件编译语句。同上。
回复
twtpdc 2002-05-15
楼上!
回复
loveisbug 2002-05-15
__cplusplus标示符用来判断程序是用c还是c++编译程序编译的。当编译c++程序时,这个标示符会被定义,编译c程序时,不会定义。
回复
handlehandle 2002-05-15
结账
回复
scxy 2002-05-15
.cpp c++文件
.c c文件
回复
handlehandle 2002-05-15
谢谢,楼上所有!
baiyucsdn(西瓜太郎);
那编译器怎会知道我写的是c代码还是c++代码呢?是不是不加上extern "c"就表明是c++代码?
回复
vccsdn 2002-05-15
c++编译程序编译函数时会在函数名前加上系统字符,用extern "C"是保持C语言原状,不加那些字符
回复
killlaoli 2002-05-15
C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字
与C 语言的不同。假设某个函数的原型为:void foo(int x,int y);
该函数被C 编译器编译后在库中的名字为_foo ,而C++编译器则会产生像
_foo_int_int 之类的名字。C++提供了C 连接交换指定符号extern “C ”来解决名字匹配问题。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-15 12:29
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……