首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在<stdbool.h>中,eclipse格式化程序对于bool类型没有正确的行为。

在<stdbool.h>中,eclipse格式化程序对于bool类型没有正确的行为。
EN

Stack Overflow用户
提问于 2014-10-30 07:13:00
回答 3查看 1.2K关注 0票数 4

我在debian上遇到了EclipseCDT3.8.0格式化程序的问题。当代码自动格式化时,返回bool和块注释的函数之间的换行符将被删除,如下所示:这是C源文件中的一个问题,只适用于bool类型,请帮助我纠正这个问题:

代码语言:javascript
复制
#include <stdbool.h>

/* my comment 1 */
void foo(void);

/* my comment 2 */bool is_valid(void);

/* my comment 3 */
int cool(void);

我想要这个:

代码语言:javascript
复制
#include <stdbool.h>

/* my comment 1 */
void foo(void);

/* my comment 2 */
bool is_valid(void);

/* my comment 3 */
int cool(void);

当我注释#include <stdbool.h>并插入以下代码时。格式化程序操作正确。

代码语言:javascript
复制
typedef int bool;
#define true 1
#define false 0

当然,当我插入以下代码而不是上面的代码时,问题仍然存在。

代码语言:javascript
复制
#define bool int
#define true 1
#define false 0

似乎格式化器对宏没有正确的行为。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-05 12:33:28

我找到了一个解决办法,但这不是一个完整的答案。我注意到它是eclipse格式化程序的一个bug,不了解bool类型。但是,当我使用双斜杠注释而不是斜杠星型注释时,格式化程序不会加入这两行,而且由于在C99中引入了双斜杠注释,它将在那里工作。

代码语言:javascript
复制
/* my comment 1 */
void foo(void);

// my comment 2
bool is_valid(void);

/* my comment 3 */
int cool(void);

当然,我认为上述问题需要向eclipse小组报告。有人知道应该在哪里报告吗?

票数 4
EN

Stack Overflow用户

发布于 2015-08-13 01:28:44

旧线程,但我遇到了一个与c99 bool和stdbool.h相关的类似问题。默认情况下,cdt项目设置具有__cplusplus宏的定义,如果代码是C++,则stdbool.h将使用该定义来不定义C++。只需删除项目属性中的"C/C++包含路径和预处理符号“。

票数 1
EN

Stack Overflow用户

发布于 2014-11-04 19:21:49

我在eclipse的菜单中找不到允许您为函数原型配置行包装的任何条目。

我只能建议您在eclipse中使用搜索和替换,选择要编辑的所有行,按CTRL+F,在搜索字段中使用*/填充搜索对话框,在替换字段中使用*/\n,选中“正则表达式”框,然后单击“替换全部”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26647076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档