c - 缩进 C 代码,Unix

标签 c linux unix indentation

我在文档中搜索了缩进,但最终我放弃了,我想这样缩进代码:

int main(int argc, char **argv){
    some code;
}

我知道缩进 -kr 给你这样的大括号,但 -kr 样式还包括

int
main(int argc, char **argv){
    some code;
}

在 main 之前的这个 int 让我毛骨悚然。

有人可以告诉我这个选项吗?

最佳答案

您感兴趣的特定选项是

-npsl
--dont-break-procedure-type
Put the type of a procedure on the same line as its name.

-brf
--braces-on-func-def-line
Put braces on function definition line.

按照建议,GNU indent manual描述了各种选项。

这是一个快速脚本,用于说明这些选项对基本预定义样式的影响:

#!/bin/sh
for opt in gnu linux orig kr
do
    echo "** $opt"
    indent -st -$opt -npsl -brf hello.c
done

和输入文件:

#include <stdio.h>

int main(int argc, char **argv) { int n; for (n = 0; n < argc; ++n) printf("arg%d=%s\n", n, argv[n]); return 0; }

和相应的输出:

** gnu
#include <stdio.h>

int main(int argc, char **argv) {
    int n;
    for (n = 0; n < argc; ++n)
        printf("arg%d=%s\n", n, argv[n]);
    return 0;
}
** linux
#include <stdio.h>

int main(int argc, char **argv) {
    int n;
    for (n = 0; n < argc; ++n)
        printf("arg%d=%s\n", n, argv[n]);
    return 0;
}
** orig
#include <stdio.h>

int main(int argc, char **argv) {
    int             n;
    for (n = 0; n < argc; ++n)
        printf("arg%d=%s\n", n, argv[n]);
    return 0;
}
** kr
#include <stdio.h>

int main(int argc, char **argv) {
    int n;
    for (n = 0; n < argc; ++n)
        printf("arg%d=%s\n", n, argv[n]);
    return 0;
}

我没有看到抑制 { 字符前空格的选项。

关于c - 缩进 C 代码,Unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616114/

相关文章:

linux - Appfog应用程序: delete file

c - 如何在C中复制文件?

c - 从 UNIX 返回一个整数

c - 将 glist 指针作为参数传递以反射(reflect)列表中的更改不起作用

c - 如何正确地进行 GMP 位移位?

c - 为什么程序输出重定向会导致其子进程输出乱序?

linux - 在 Linux 中选择多个同名的可执行文件

Linux I/O 到正在运行的守护进程/进程

c - 信号处理程序返回段错误 :11

.net - .Net 中的页面错误和编程