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{.....}
#endif4.接上.如果可以,这样有什么用呢?可以用mat_cpp表示那段程序,在别的函数中使用?那与直接调用mat_cpp()函数,或者#include "mat_cpp.cpp"有什么不同呢?
可是在编译的时候,出现错误: error C2144: syntax error : missing ';' before type 'double'。这是怎么回事呢?有哪些可能会导致这种问题呢?按照规定应该这样定义没错阿?3.#define后面可以是一段程序吗?比如:
#ifndef mat_cpp
#define mat_cpp{.....}
#endif4.接上.如果可以,这样有什么用呢?可以用mat_cpp表示那段程序,在别的函数中使用?那与直接调用mat_cpp()函数,或者#include "mat_cpp.cpp"有什么不同呢?
解决方案 »
- 用extern 来说明的问题
- VS 2003 如何制作一个图片表格?
- 程序自动运行_win.ini
- ****现在的面试是不是要求高了啊?
- 数据库操作,当PutCollect或者GetCollect()发生异常的时候,如何得到是该字段出问题?
- 关于操作WORD的问题``
- CDialog类
- 求助高手,com 在线程内向上层程序发消息但报错
- 请教做驱动程序的一个小问题?
- 一个很菜的问题请教大家:属性页(CPropertySheet CPropertyPage)与CTabCtrl(标签控件)之间的区别?
- [DBNMPNTW]ConnectionWrite(WriteFile())
- 请教:怎样区分基于TCP连接的是哪个协议?
答:可以,需要在.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);
2,extern放到cpp中
3,宏是替换
#ifndef _MY_CLASS_H_
#define _MY_CLASS_H_
//...
//你的头文件定义 可以将整个.h内容都包函在条件判断这里,这样就不会有冲突了
//...
#endif//_MY_CLASS_H_