clang格式

时间:2017-04-04 13:49:46

标签: c++ c clang clang-format

我们使用宏来控制控制语句,例如

IF (baz == 1) {
    // code
} ELSE {
    // code
}

Clang-format不会识别这些并且会混淆。我注意到有ForEachMacros,我希望其他控制语句有类似内容。

1 个答案:

答案 0 :(得分:0)

我从你的评论中看到了这个:

  

见这里:github.com/dennisguse/ITU-T_stl2009/blob/master/basop/contro‌​l.h

您需要在项目中#include <control.h>,以便定义宏。

之后,看起来您应该能够#undef WMOPS,并且事情会返回' normal '。

这些宏似乎用于分析/分析软件的操作 - 重要的是forwhiledoif,{{{在某个执行区域内使用1}},elseswitchcontinuebreak

请参阅gotog722/decg722.c:446

:494

然后 if(header[0] != G192_SYNC){ /* bad frame, (with zero length or valid G.722 length) */ /* ... */ } else { /* good frame, update index memory mem_code and mode memory mem_mode */ #ifdef WMOPS setCounter(spe2Id); fwc(); Reset_WMOPS_counter(); #endif

:567

#ifdef WMOPS setCounter(spe1Id); fwc(); WMOPS_output(0); setCounter(spe2Id); fwc(); WMOPS_output(0); #endif 内设置currCounter变量...此处选择计数器并在setCounter()上重置,然后计算信息,并在收到帧后输出。

我做了一个简单的版本来演示:

G192_SYNC
#include <stdio.h>

#ifndef WMOPS
#define FOR(a) for(a)

#else /* WMOPS */

#define FOR(a) \
    if (incrFor(), 0); else for(a)

int myFor = 0;

static __inline void incrFor(void) {
    myFor++;
}
#endif /* WMOPS */

void t(int x) {
    int i;

    FOR (i = 0; i < 5; i++) {
        printf("x: %d    i: %d\n", x, i);
    }
}
int main(void) {
    t(1);
    t(2);

#ifdef WMOPS
    printf("myFor: %d\n", myFor);
#endif

    return 0;
}
$ gcc wm.c -o wm && ./wm
x: 1    i: 0
x: 1    i: 1
x: 1    i: 2
x: 1    i: 3
x: 1    i: 4
x: 2    i: 0
x: 2    i: 1
x: 2    i: 2
x: 2    i: 3
x: 2    i: 4