如何查看xcode下已经预先定义好的宏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看xcode下已经预先定义好的宏相关的知识,希望对你有一定的参考价值。

参考技术A 查阅全部文档: 从Help/Document and API Refrence; 查阅类、方法、函数、宏定义等的声明部分的源代码: Command + 鼠标点击代码字符; 查阅类、方法、函数、宏定义等的相关说明文档: Alt + 鼠标点击代码字符; 此外,关于文档查询和代码缩写以

讲下c语言中的宏

我在大学的C++教材上没学过这种宏的使用,请解释下下面的代码是什么意思?
#define DECLARE_DYNAMIC(class_name)

protected:

static CRuntimeClass* PASCAL _GetBaseClass();

public:

static const AFX_DATA CRuntimeClass

class##class_name;

virtual CRuntimeClass* GetRuntimeClass() const;

#define _DECLARE_DYNAMIC(class_name)

protected:

static CRuntimeClass* PASCAL _GetBaseClass();

public:

static AFX_DATA CRuntimeClass class##class_name;

virtual CRuntimeClass* GetRuntimeClass() const;

#else

#define DECLARE_DYNAMIC(class_name)

public:

static const AFX_DATA CRuntimeClass class##class_name;

virtual CRuntimeClass* GetRuntimeClass() const;

#define _DECLARE_DYNAMIC(class_name)

public:

static AFX_DATA CRuntimeClass class##class_name;

virtual CRuntimeClass* GetRuntimeClass() const;

#endif

像 afx.h 文件。漏写了许多反斜杠。
反斜杠 表示下面的行应当和本行在同一行。

宏 [#define 这串字符串 一大堆东西]
作用是以后遇到 这串字符串 就替换为 一大堆东西。

#define DECLARE_DYNAMIC(class_name) 反斜杠一大堆东西
因为有(class_name),叫 变参宏,
这串字符串 是 DECLARE_DYNAMIC(变参),替换作业时,一大堆东西里的 class_name 也要用 实参 代替。

#ifdef _AFXDLL
#define DECLARE_DYNAMIC(class_name) 反斜杠一大堆东西
#else
#define DECLARE_DYNAMIC(class_name) 反斜杠 另外一大堆东西
#endif

如果定义了 _AFXDLL,则 这串字符串 用 一大堆东西 替换,class_name 也用实参替换
否则,这串字符串 用 另一大堆东西 替换,class_name 也用实参替换

## 表示 前后两 token 连接

读一下参考资料,了解 # 和 ## 应用,如何做宏替代。

参考资料:http://www.kuqin.com/language/20080721/11906.html

参考技术A 这应该是MFC类库的一段声明。主要关于运行时识别的东西。
要解释清楚你这里的东西篇幅实在太多了。我挑几个给你距离说明好了。
第一句的DECLARE_DYNAMIC宏:
#define DECLARE_DYNAMIC(CLASS)
.
.
.
#endif
以上都是这个宏的定义。如果以后你在文件中写DECKARE_DYNAMIC(CView).那么这个宏就会自动帮你完成CView的声明工作。
宏里面“##”符号的意思是连接两个字符串 执行完毕之后生成的类名是classCView.

在你这个宏之前应该还少了一句#ifndef XXX。这样这个宏才能完整
整个的意思是:
if(没有定义XXX)

那么就定义DECLARE_DYNAMIC

else

否则就定义_DECLARE_DYNAMIC


宏只是简单的替换而已。如果想要深入了解MFC。可以看看侯捷老师的《深入浅出MFC》.不过看你的代码,很像那本书上的一段代码。微软的MFC用了太多的宏,确实不好理解。但是请坚持下去,一段时间后你会发现 ---- “不过如此”
参考技术B 要掌握下面几个:
……
#
##
一些设计的细节,防止产生bug
具体参考酷勤:
www.kuqin.com/language/20080721/11906.html本回答被提问者采纳

以上是关于如何查看xcode下已经预先定义好的宏的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xcode 5 可视化调试器快速查看自定义对象?

如何获得QQ好友列表

如何使用Windows Power Shell

试图查看哪些选项预先配置了其他网站的Ckeditor

如何编辑 TextField 值,该值已预先定义

如何给Source Insight添加块注释的宏 等