请教几个简单问题

a13935113819 2005-04-27 12:37:28
1.#include 同一个文件,能在不同的.cpp中包含吗?

2.我在头文件*.h中定义一个外部变量:extern double aa;然后再在*.cpp赋值:aa=2.03;
可是在编译的时候,出现错误: error C2144: syntax error : missing ';' before type 'double'。这是怎么回事呢?有哪些可能会导致这种问题呢?按照规定应该这样定义没错阿?

3.#define后面可以是一段程序吗?比如:
#ifndef mat_cpp
#define mat_cpp{.....}
#endif

4.接上.如果可以,这样有什么用呢?可以用mat_cpp表示那段程序,在别的函数中使用?那与直接调用mat_cpp()函数,或者#include "mat_cpp.cpp"有什么不同呢?
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a13935113819 2005-04-27
  • 打赏
  • 举报
回复
1.“ 防止重复包含”?是指不能在同一个文件中包含两次,还是指在整个工程中的所有文件中只能有一个文件包含?

2.按照两位大侠的指点,我试了一下,还是不行。

oyljerry 2005-04-27
  • 打赏
  • 举报
回复
1,包含后注意防止重复包含
2,extern放到cpp中
3,宏是替换
Jimmy_Xia 2005-04-27
  • 打赏
  • 举报
回复
1.#include 同一个文件,能在不同的.cpp中包含吗?
答:可以,需要在.h文件中加宏控制
//myClass.h
#ifndef _MY_CLASS_H_
#define _MY_CLASS_H_
//...
//你的头文件定义
//...
#endif//_MY_CLASS_H_
2.entern double aa;这句加到*.cpp文件中试试
3.#define只是一个宏定义,可以是任何的字符,编译器在真正编译的时候自己会替换为实际代码
比如
#define add(a,b) (a+b)
在你程序中使用了add(a,b)的宏,
num = add(1,2);
编译器会转换为num = (1+2);
xqk 2005-04-27
  • 打赏
  • 举报
回复
如楼上所说,在头文件里加预定义条件判断,这样的话你在多个CPP中包函同一个.h,预定义条件判断就会忽略第二次#include

//myClass.h
#ifndef _MY_CLASS_H_
#define _MY_CLASS_H_
//...
//你的头文件定义 可以将整个.h内容都包函在条件判断这里,这样就不会有冲突了
//...
#endif//_MY_CLASS_H_

16,551

社区成员

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

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

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