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

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
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 ”来解决名字匹配问题。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧