我正在尝试在我的目标c ++(我认为它被称为)代码中设置一个断点。
我已经使用#ifdef _cplusplus
和#endif
来包装代码,但是当我在其中设置断点时,它会在方法体的末尾中断,并且没有任何代码身体运行。
我已经简化了我的代码,但我希望至少能看到由于cout
而在控制台中打印的数字。
该文件的扩展名也为.mm。我是混合C ++和Objective-C的新手。我错过了什么?
答案 0 :(得分:1)
#ifdef
是preprocessor directive - 简而言之,这意味着如果某个地方没有_cplusplus
#define
,那么您的调试器就足够聪明地说嘿,这个是死代码 - 甚至不试图调试它。
预处理程序指令是程序代码中包含的行 前面有一个井号(#)。这些行不是程序语句 但预处理器的指令。预处理器检查了 在实际编译代码之前的代码开始并解析所有这些 任何代码实际生成之前的指令 语句。
这些预处理程序指令只扩展到一行 码。一旦找到换行符,就预处理器 指令是结束。预计在结束时不会使用分号(;) 预处理指令。预处理程序指令的唯一方法 通过在换行符之前延伸多行 反斜杠()的行尾的字符。
这些非常有用,对于一个常见的例子,请快速查看Include Guards。作为查看我的意思的测试,请尝试在#define _cplusplus
正上方添加#ifdef
,然后重试。