GoGPT Best VPN GoSearch

OnWorks 网站图标

缩进 - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行缩进

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令缩进,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


缩进 - 通过插入或删除空格来改变 C 程序的外观。

概要


缩进 [选项] [输入文件]

缩进 [选项] [单输入文件] [-o 输出文件]

缩进 - 版

商品描述


该手册页是从文件生成的 缩进.texinfo. 这是“The 缩进
手册”,用于缩进版本,最后更新。

这个 缩进 程序可用于使代码更易于阅读。 它也可以从一个
将 C 写成另一个的风格。

缩进 大量了解 C 的语法,但它也试图
处理不完整和错误的语法。

在 1.2 版和更新的版本中,GNU 缩进样式是默认设置。

配置


-坏, --声明后的空行
在声明后强制空行。
参见 BLANK 线数.

-bap, --程序后的空白行
在程序主体后强制空行。
参见 BLANK 线数.

-bbb, --块注释前的空白行
在块注释之前强制空行。
参见 BLANK 线数.

-bbo, --布尔运算符之前中断
更喜欢在布尔运算符之前打断长行。
参见 BREAKING 线数.

-公元前, --空格后逗号
在声明中的逗号后强制换行。
参见 声明.

-bl, --大括号后if-line
将大括号放在后面 if等等。
参见 声明.

-blf, --func-def-line 之后的大括号
将大括号放在函数定义行之后的行上。
参见 声明.

-blin, --大括号缩进n
缩进花括号 n 空格。
参见 声明.

-bls, --struct-decl-line 之后的大括号
将大括号放在后面的行上 结构 声明行。
参见 声明.

-br, --大括号在线
将大括号与 if等等。
参见 声明.

-brf, --func-def-line 上的大括号
将大括号放在函数定义行上。
参见 声明.

-brs, --struct-decl-line 上的大括号
戴上牙套 结构 声明行。
参见 声明.

-bs, --比尔-香农, --sizeof 之前空白
中间留一个空格 大小 及其论证。
参见 声明.

-cn, --comment-缩进n
将注释放在列中代码的右侧 n.
参见 评论.

-cbin, --大小写大括号缩进n
在 case 标签后缩进大括号 N 个空格。
参见 声明.

-光盘n, --声明-注释-栏n
将注释放在列中声明的右侧 n.
参见 评论.

-CDB, --空白行上的注释分隔符
将注释分隔符放在空行上。
参见 评论.

-cdw, --拥抱-做-同时
拥抱的同时 do {} 而; 和前面的'}'。
参见 评论.

-这个, --拥抱其他
拥抱其他和前面的 '}'。
参见 评论.

-这个n, --continuation-缩进n
继续缩进 n 空格。
参见 声明.

-clin, --case-缩进n
案例标签缩进 n 空格。
参见 声明.

-cpn, --else-endif-列n
把评论放在右边 的#else#ENDIF 列中的陈述 n.
参见 评论.

-CS, --空间后投
在强制转换运算符之后放置一个空格。
参见 声明.

-dn, --line-comments-缩进n
将注释的缩进设置为不在代码右侧 n 空格。
参见 评论.

-bfda, --break-function-decl-args
在声明中的所有参数之前断行。
参见 声明.

-bfde, --break-function-decl-args-end
在声明中的最后一个参数之后换行。
参见 声明.

-DJ, --左对齐声明
如果使用 -cd 0,则声明后的注释将在后面对齐
宣言。
参见 声明.

-dun, --声明-缩进n
将变量放在列中 n.
参见 声明.

-fc1, --格式第一列注释
在第一列中格式化注释。
参见 评论.

-fca, --格式化所有评论
不要禁用所有注释格式。
参见 评论.

- 牛羚, --gnu 风格
使用 GNU 编码风格。 这是默认设置。
参见 COMMON STYLES.

-hnl, --荣誉换行
更喜欢在输入中的换行符位置中断长行。
参见 BREAKING 线数.

-in, --缩进级别n
将缩进级别设置为 n 空格。
参见 缩进.

-他n, --缩进标签n
将标签的偏移量设置为列 n.
参见 缩进.

-ipn, --参数缩进n
旧式函数定义中的参数类型缩进 n 空格。
参见 缩进.

-kr, --k-and-r 风格
使用 Kernighan & Ritchie 编码风格。
参见 COMMON STYLES.

-ln, --行长n
将非注释行的最大行长度设置为 n.
参见 BREAKING 线数.

LCn, --注释行长度n
将注释格式的最大行长度设置为 n.
参见 评论.

-Linux, --linux 风格
使用 Linux 编码风格。
参见 COMMON STYLES.

-lp, --continue-at-括号
在括号中排列连续的行。
参见 缩进.

-LPS, --离开预处理器空间
在“#”和预处理器指令之间留出空格。
参见 缩进.

-nbad, --声明后无空白行
不要在声明后强制使用空行。
参见 BLANK 线数.

-nbap, --程序后无空白行
不要在程序体之后强制空行。
参见 BLANK 线数.

-nbbo, --布尔运算符后中断
不要喜欢在布尔运算符之前打断长行。
参见 BREAKING 线数.

-全国广播公司, --逗号后无空行
不要在声明中的逗号后强制换行。
参见 声明.

-nbfda, --不要破坏函数声明参数
不要将每个参数放在单独一行的函数声明中。
参见 声明.

-ncd​​b, --空白行上无注释分隔符
不要在空行上放置注释分隔符。
参见 评论.

-ncd​​w, --不要拥抱
不要拥抱 }do {} 而;.
参见 声明.

-nce, --不要拥抱其他
不要拥抱 }其他.
参见 声明.

-NCS, --施法后无空格
不要在强制转换运算符之后放置空格。
参见 声明.

-ndjn, --dont-left-justify-声明
声明后的注释与其他语句后的注释相同。
参见 声明.

-nfc1, --不格式化第一列注释
不要像往常一样格式化第一列中的注释。
参见 评论.

-NFCA, --不格式化评论
不要格式化任何注释。
参见 评论.

-nhnl, --忽略换行符
不要喜欢在输入中的换行符位置换行。
参见 BREAKING 线数.

-掐, --无参数缩进
参数的零宽度缩进。
参见 缩进.

-nlp, --不要排括号
不要排列括号。
参见 声明.

-npc, --函数调用名称后无空格
不要在函数调用中的函数后放置空格。
参见 声明.

-nprs, --括号后无空格
不要在每个 '(' 之后和每个 ')' 之前放置一个空格。
参见 声明.

-npsl, --不要破坏过程类型
将过程的类型与其名称放在同一行。
参见 声明.

-NSAF, --之后没有空格
不要在每个后面放一个空格 HPMC胶囊.
参见 声明.

-恩赛, --if 后没有空格
不要在每个后面放一个空格 if.
参见 声明.

- 恩锯, --一段时间后没有空格
不要在每个后面放一个空格 .
参见 声明.

-NSC, --不要加星评论
不要将“*”字符放在注释的左侧。
参见 评论.

-nsob, --留下可选空白行
不要吞下可选的空行。
参见 BLANK 线数.

-nss, --dont-space-special-分号
不要在某些语句之后的分号之前强制使用空格。 禁用“-ss”。
参见 声明.

-坚果, --无标签
使用空格而不是制表符。
参见 缩进.

-nv, --无冗长
禁用详细模式。
参见 其他条款 配置.

-原点, - 原来的
使用原始的伯克利编码风格。
参见 COMMON STYLES.

-npro, --忽略配置文件
不要阅读“.indent.pro”文件。
参见 调用 缩进.

-件, --程序调用后的空间
在被调用的过程名称和“(”之间插入一个空格。
参见 声明.

-pin, --parent-缩进n
当语句被破坏时,为每个左括号“(”指定额外的缩进。参见
声明.

-pmt, --保留时间
保留对输出文件的访问和修改时间。参见 其他条款 配置.

-ppin, --预处理器-缩进n
指定预处理器条件语句的缩进。参见 缩进.

-prs, --空格后括号
在每个 '(' 之后和每个 ')' 之前放置一个空格。
参见 声明.

-psl, --procnames-开始行
将过程的类型放在其名称之前的行上。
参见 声明.

-安全, --空格后的
在每个后面放一个空格 HPMC胶囊.
参见 声明.

-赛, --if 后的空格
在每个后面放一个空格 if.
参见 声明.

-锯, --空间之后
在每个后面放一个空格 .
参见 声明.

-sbin, --struct-brace-缩进n
缩进结构、联合或枚举的大括号 N 个空格。
参见 声明.

-sc, --评论左侧开始
将“*”字符放在注释的左侧。
参见 评论.

-哭泣, --吞下可选空白行
吞下可选的空行。
参见 BLANK 线数.

-SS, --space-special-分号
单线 HPMC胶囊 语句,强制在分号前留一个空格。
参见 声明.

-st, --标准输出
写入标准输出。
参见 调用 缩进.

-T 告诉 缩进 类型名称的名称。
参见 声明.

-tsn, --标签大小n
将标签大小设置为 n 空格。
参见 缩进.

-ut, --使用标签
使用标签。 这是默认设置。
参见 缩进.

-v, --详细
启用详细模式。
参见 其他条款 配置.

-版
输出版本号 缩进.
参见 其他条款 配置.

调用 缩进


从 1.3 版开始, 缩进 命令是:

缩进 [选项[输入文件]

缩进 [选项[单输入文件] [-O 输出文件]

这种格式不同于早期版本和其他版本的 缩进.

在第一种形式中,指定了一个或多个输入文件。 缩进 制作一个备份副本
每个文件,并且原始文件被替换为其缩进的版本。 看 备份 FILES,
有关如何进行备份的说明。

在第二种形式中,只指定了一个输入文件。 在这种情况下,或当标准
使用输入,您可以在“-o”选项后指定输出文件。

导致 缩进 要写入标准输出,请使用“-st”选项。 这只允许
当只有一个输入文件时,或使用标准输入时。

如果没有命名输入文件,则读取标准输入作为输入。 另外,如果一个文件名
指定名为“-”,然后读取标准输入。

例如,以下每个命令都将输入程序“slithy_toves.c”和
将其缩进文本写入“slithy_toves.out”:

缩进 slimhy_toves.c -o slimhy_toves.out

缩进 -st slimhy_toves.c > slimhy_toves.out

cat slimy_toves.c | 缩进 -o slimhy_toves.out

大多数其他选择 缩进 控制程序的格式。 从 1.2 版开始,
缩进 还识别每个选项名称的长名称。 长选项以
'--' 或 '+'。 [ '+' 被 '--' 取代以保持与
POSIX 标准。]
在本文档的大部分内容中,为了简洁起见,使用了传统的短名称。
参见 OPTION 概要, 获取选项列表,包括长名称和短名称。

这是另一个示例:

缩进 -br 测试/代谢.c -l85

这将使用“-br”和“-l85”选项缩进程序“test/metabolism.c”,写
输出回'test/metabolism.c',并写入原始内容
'test/metabolism.c' 到目录 'test' 中的备份文件。

在这个例子中使用长选项名称的等效调用是:

缩进 --braces-on-if-line --line-length185 test/metabolism.c

缩进 + 大括号在 if-line +line-length185 测试/代谢.c

如果你发现你经常使用 缩进 使用相同的选项,你可以把这些选项
进入一个名为“.indent.pro”的文件。 缩进 将在三个位置查找配置文件。
首先它会检查环境变量 INDENT_PROFILE. 如果存在它的价值是
期望命名要使用的文件。 如果环境变量不存在,
indent 在当前目录中查找 '.indent.pro'
并在找到时使用它。 最后 缩进 将在您的主目录中搜索“.indent.pro”
如果找到,则使用该文件。 此行为与其他版本不同
of 缩进, 如果它们都存在,则加载这两个文件。

'.indent.pro' 的格式只是一个选项列表,就像它们出现在
命令行,由空格分隔(制表符、空格和换行符)。 中的选项
'.indent.pro' 可能被 C 或 C++ 注释包围,在这种情况下它们将被忽略。

命令行开关被处理 after 处理“.indent.pro”。 稍后指定的选项
覆盖先前指定的参数,但有一个例外:显式指定的选项
始终覆盖背景选项(请参阅 COMMON STYLES)。 你可以防止 缩进
通过指定“-npro”选项读取“.indent.pro”文件。

备份 FILES


从 1.3 版开始,GNU 缩进 制作 GNU 风格的备份文件,就像 GNU Emacs 一样。
这意味着 简单 or 编号 可以制作备份文件名。

简单的备份文件名是通过在原始文件名后附加一个后缀来生成的。
此后缀的默认值是单字符字符串“~”(波浪号)。 因此,备份
'python.c' 的文件将是 'python.c~'。

您可以通过设置环境将任何字符串指定为后缀,而不是默认值
变量 SIMPLE_BACKUP_SUFFIX 到您喜欢的后缀。

文件“momeraths.c”的编号备份版本看起来像“momeraths.c.~23~”,其中 23 是
此特定备份的版本。 对文件进行编号备份时
'src/momeraths.c',备份文件将命名为'src/momeraths.c.~V〜',哪里 V 是一个
大于目录“src”中当前存在的最高版本。 这
环境变量 版本宽度 控制位数,使用左零填充
必要时。 例如,将此变量设置为“2”将导致备份文件
被命名为'momeraths.c.~04~'。

制作的备份文件的类型由环境变量的值控制
版本控制. 如果它是字符串 'simple',则只会进行简单的备份。 如果
它的值是字符串“编号”,然后将进行编号备份。 如果它的值是
'numbered-existing',如果有,则将进行编号备份 已经 存在 编号
缩进文件的备份; 否则,将进行简单备份。 如果
版本控制 没有设置,那么 缩进 假设“编号存在”的行为。

其他版本的 缩进 在命名备份文件时使用后缀“.BAK”。 这种行为可以
通过设置来模拟 SIMPLE_BACKUP_SUFFIX 到'.BAK'。

另请注意,其他版本的 缩进 在当前目录中进行备份,而不是
在源文件的目录中作为 GNU 缩进 现在呢。

COMMON STYLES


有几种常见的 C 代码风格,包括 GNU 风格、Kernighan 和
里奇风格,以及原始的伯克利风格。 可以选择一个样式
背景 选项,它为所有其他选项指定一组值。 然而,
明确指定的选项总是覆盖后台选项隐含的选项。

从 1.2 版开始,GNU 的默认样式 缩进 是 GNU 风格。 因此,它不是
不再需要指定选项“-gnu”来获得这种格式,尽管这样做
不会导致错误。 对应于 GNU 风格的选项设置是:

-nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
-ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -nprs -psl -saf -sai
-锯-nsc-nsob

GNU 编码风格是 GNU 项目首选的风格。 这是 GNU 的风格
Emacs C 模式鼓励 和 用于 GNU Emacs 的 C 部分。 (人们
对为 GNU 项目编写程序感兴趣的人应该得到一份“The GNU Coding
标准”,它还涵盖了语义和可移植性问题,例如内存使用、
整数的大小等)

Kernighan & Ritchie 的风格在他们的著名著作“The C Programming
语言”。它通过 '-kr' 选项启用。Kernighan & Ritchie 风格
对应于以下选项集:

-nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
-cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
-nprs -npsl -saf -sai -saw -nsc -nsob -nss

Kernighan & Ritchie 风格不会将注释放在同一列中的代码右侧
任何时候(也不只使用代码右侧的一个空格),所以对于这种风格
缩进 已任意选择第 33 列。

原伯克利的风格 缩进 可以通过指定“-orig”(或通过
指定'--original',使用长选项名称)。 这种风格相当于
以下设置:

-nbad -nbap -bbo -bc -br -brs -c33 -cd33 -cdb -ce -ci4 -cli0
-cp33 -di16 -fc1 -fca -hnl -i4 -ip4 -l75 -lp -npcs -nprs -psl
-saf -sai -saw -sc -nsob -nss -ts8

Linux 风格用于 linux 内核代码和驱动程序。 代码通常必须遵循
被接受的 Linux 编码风格。 这种风格相当于以下
设置:

-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4
-cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai
-saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1

BLANK 线数


各种编程风格在不同的地方使用空行。 缩进 有一些
在特定位置插入或删除空行的选项。

'-bad' 选项导致 缩进 在每个声明块之后强制一个空行。
'-nbad' 选项导致 缩进 不要强迫这样的空行。

'-bap' 选项在每个过程体之后强制一个空行。 '-nbap' 选项
强制没有这样的空行。

'-bbb' 选项会在每个加框注释前强制出现一个空行(请参阅 评论。) 这
'-nbbb' 选项不会强制使用此类空行。

'-sob' 选项导致 缩进 吞下可选的空行(即任何可选的
输入中存在的空行将从输出中删除)。 如果“-nsob”是
指定,输入文件中存在的任何空行都将被复制到输出文件中。

--声明后的空行


'-bad' 选项在每个声明块之后强制一个空行。 '-nbad'
option 不会添加任何此类空行。

例如,给定输入
字符 *foo;
字符 *酒吧;
/* 这将分隔声明块。 */
诠释巴兹;

缩进 -坏 产生

字符 *foo;
字符 *酒吧;

/* 这将分隔声明块。 */
诠释巴兹;

缩进 -nbad 产生

字符 *foo;
字符 *酒吧;
/* 这将分隔声明块。 */
诠释巴兹;

--程序后的空白行


'-bap' 选项在每个过程体之后强制一个空行。

例如,给定输入

INT
富()
{
puts("你好");
}
/* 程序栏就更没意思了。 */
字符 *
酒吧 ()
{
puts("你好");
}

缩进 -bap 产生

INT
富()
{
放(“嗨”);
}

/* 程序栏就更没意思了。 */
字符 *
酒吧 ()
{
puts ("你好");
}

缩进 -nbap 产生

INT
富()
{
放(“嗨”);
}
/* 程序栏就更没意思了。 */
字符 *
酒吧 ()
{
puts ("你好");
}

程序后不会加空行 FOO.

评论


缩进 格式化 C 和 C++ 注释。 C 注释以 '/*' 开始,以
'*/' 并且可能包含换行符。 C++ 注释以分隔符“//”开头,并且
以换行符结束。

缩进 根据上下文以不同的方式处理注释。 缩进 尝试去
区分跟在语句后面的注释,跟在声明后面的注释,
预处理器指令后面的注释,以及前面没有代码的注释
任何类型,即它们开始行的文本(尽管不一定在第 1 列)。

缩进 进一步区分在程序和聚合之外发现的评论,
以及在其中发现的那些。 特别是,在一个
过程将缩进到代码当前缩进的列。 这
例外情况是从最左边的列开始的注释; 输出这样的评论
在那一列。

缩进 试图离开 盒装 注释 未修改。 这种评论的大致思路是
它被包围在一个矩形或星形或虚线的“盒子”中,以在视觉上将其分开。
更准确地说,盒装注释被定义为后面跟着开头的 '/*' 的注释
直接由字符 '*'、'='、'_' 或 '-' 或那些以字符开头的
注释分隔符('/*')单独在一行上,下一行以'*'开头
在与开始分隔符的星号相同的列中。

盒装评论的例子是:

/************************
* 在框中评论!! *
**************************/

/*
* 一种别样的香味,
* 用于不同类型的评论。
*/

缩进 试图完全保留在源文件中找到的加框注释。
因此注释的缩进是不变的,并且它的长度在任何
道路。 唯一的改动是嵌入的制表符可以转换为
适当的空格数。

如果指定了 '-bbb' 选项,所有这样的加框注释前面都会有一个空格
行,除非这样的注释前面有代码。

不是加框注释的注释可能会被格式化,这意味着该行是
打破以适应右边距并用空白填充左边。 单个换行符是
相当于一个空格,但空行(一行中的两个或多个换行符)被认为是一个
断段。 启用第一列后开始的注释格式
使用“-fca”选项。 要格式化从第一列开始的那些,请指定“-fc1”。 这样的
默认情况下禁用格式化。

格式化的右边距默认为 78,但可以使用 '-lc' 选项更改。
如果指定的边距不允许打印注释,则边距将是
自动延长该评论的持续时间。 如果出现以下情况,则不遵守边距
评论没有被格式化。

如果注释开始一行(即它的左边没有程序文本),它将是
缩进到它所在的列,除非注释在代码块内。 在
在这种情况下,这样的注释将与该块的缩进代码对齐(除非
评论从第一列开始)。 这种对齐方式可能会受到“-d”选项的影响,
它指定了将此类评论移至 ,或无缩进。
例如,“-d2”将注释放在代码左侧两个空格处。 默认情况下,评论
与代码对齐,除非它们从第一列开始,在这种情况下它们被留下
默认情况下 --- 要使它们与代码对齐,请指定“-fc1”。

默认情况下,代码右侧的注释将出现在第 33 列中。这可能会更改
三个选项之一。 '-c' 将指定代码后面的注释列,
“-cd”指定声明后面的注释列,“-cp”指定
预处理器指令后的注释列 的#else#ENDIF. '-dj' 在一起
'-cd0' 可用于抑制注释与声明右侧的对齐,
导致注释跟随声明末尾的一个制表位。 通常'-cd0'
导致“-c”生效。

如果注释左边的代码超过了起始列,则注释列
将扩展到代码末尾的下一个制表位列,或者在
预处理器指令,到指令末尾的一个空格。 此扩展持续
仅用于该特定评论的输出。

'-cdb' 选项将注释定界符放在空行上。 因此,单行
评论喜欢 /* 拥抱 */ 可以转化为:

/*
爱的拥抱
*/

星号可以使用“-sc”选项放置在多行注释的开头。 因此,
上面的单行注释可以(使用“-cdb -sc”)转换为:

/*
* 爱的拥抱
*/

声明


'-br' 或 '-bl' 选项指定如何格式化大括号。

'-br' 选项格式化语句大括号,如下所示:

如果 (x > 0) {
x--;
}

'-bl' 选项将它们格式化如下:

如果 (x > 0)
{
x--;
}

如果您使用 '-bl' 选项,您可能还需要指定 '-bli' 选项。 这个选项
指定大括号缩进的空格数。 '-bli2',默认值,给出
结果如上所示。 '-bli0' 结果如下:

如果 (x > 0)
{
x--;
}

如果您正在使用 '-br' 选项,您可能还想使用 '-ce' 选项。 这个
导致 其他 在一个 if-then-else 构造中拥抱紧挨着前一个
'}'。 例如,使用 '-br -ce' 你会得到以下信息:

如果 (x > 0) {
x--;
} {
fprintf (stderr, "...出了什么问题?\n");
}

使用“-br -nce”,该代码将显示为

如果 (x > 0) {
x--;
}
其他{
fprintf (stderr, "...出了什么问题?\n");
}

这导致 在 do-while 循环中拥抱紧接在前面的 '}'。
例如,使用“-cdw”,您会得到以下信息:

做 {
x--;
} 而(x);

使用“-ncdw”,该代码将显示为

做 {
x--;
}
而 (x);

'-cli' 选项指定大小写标签应缩进的空格数
包含权 开关 语句。

默认提供如下代码:

开关 (i)
{
案例0:
打破;
案例1:
{
++我;
}
默认情况下:
打破;
}

使用“-cli2”将成为:

开关 (i)
{
案例0:
打破;
案例1:
{
++我;
}
默认情况下:
打破;
}

case 语句下面大括号的缩进可以用'-cbin
选项。 例如,使用“-cli2 -cbi0”会导致:

开关 (i)
{
案例0:
打破;
案例1:
{
++我;
}
默认情况下:
打破;
}

如果分号与 HPMC胶囊 or 声明,'-ss' 选项将
导致在分号之前放置一个空格。 这强调了分号,使其
清楚地表明身体 HPMC胶囊 or statement 是一个空语句。 '-nss' 禁用
这项特征。

'-pcs' 选项导致在被调用的过程名称之间放置一个空格。
调用和“(”(例如, 看跌期权 (“你好”);. '-npcs' 选项会给出
puts("你好");).

如果指定了“-cs”选项, 缩进 在强制转换运算符和
要投射的对象。 “-ncs”确保转换运算符和
物体。 请记住 缩进 只知道标准的 C 数据类型,所以不能
在强制转换中识别用户定义的类型。 因此 (我的类型)东西 不被视为演员表。

'-bs' 选项确保关键字之间有一个空格 大小 以及
争论。 在某些版本中,这称为“Bill_Shannon”选项。

'-saf' 选项强制一个空格 HPMC胶囊 和下面的括号。 这是
默认。

'-sai' 选项强制一个空格 if 和下面的括号。 这是
默认。

'-saw' 选项强制一个空格 和下面的括号。 这是
默认值。

'-prs' 选项会导致所有括号用空格与任何括号分开
它们之间。 例如,使用“-prs”会产生如下代码:

while ( ( e_code - s_code ) < ( dec_ind - 1 ) )
{
set_buf_break ( bb_dec_ind );
*e_code++ = ' ';
}

声明


默认情况下 缩进 将在“-di”选项指定的列中排列标识符。
例如,“-di16”使事情看起来像:

国际富;
字符 *酒吧;

对 '-di' 选项使用较小的值(例如一或二)可用于导致
要放置在第一个可用位置的标识符; 例如:

国际富;
字符 *酒吧;

'-di' 选项的值仍然会影响单独放置的变量
来自它们类型的行,例如“-di2”将导致:

INT
富;

如果指定了 '-bc' 选项,则在声明中的每个逗号之后强制换行。
例如,

一个,
b,
c;

使用“-nbc”选项,这看起来像

int a,b,c;

'-bfda' 选项导致在分隔参数的逗号之后强制换行
的函数声明。 参数将出现在比
函数声明。 这对于具有长参数的函数特别有用
列表。 选项 '-bfde' 导致在结束括号之前强制换行
函数声明。 对于这两个选项,'n' 设置是默认值:-nbdfa 和 -nbdfe。

例如,

void foo (int arg1, char arg2, int *arg3, long arg4, char arg5);
使用“-bfda”选项,这看起来像

空 foo (
内部arg1,
字符 arg2,
整数 *arg3,
长arg4,
字符 arg5);

此外,使用“-bfde”选项,这看起来像

空 foo (
内部arg1,
字符 arg2,
整数 *arg3,
长arg4,
字符 arg5
);

'-psl' 选项使正在定义的过程的类型放在行上
在程序名称之前。 这种风格是必需的 标签 工作计划
正确,以及一些 c模式 Emacs 的功能。

您必须使用“-T”选项来告诉 缩进 程序中所有类型名称的名称
类型定义. '-T' 可以指定多次,所有名称
指定使用。 例如,如果您的程序包含

typedef unsigned long CODE_ADDR;
typedef enum {红、蓝、绿} 颜色;

您将使用选项“-T CODE_ADDR -T COLOR”。

'-brs' 或 '-bls' 选项指定如何在结构声明中格式化大括号。 这
'-brs' 选项格式化大括号,如下所示:

结构 foo {
int x;
};

'-bls' 选项将它们格式化如下:

结构体
{
int x;
};

类似于结构大括号“-brs”和“-bls”选项,
函数大括号选项 '-brf' 或 '-blf' 指定如何格式化函数中的大括号
定义。 '-brf' 选项格式化大括号,如下所示:

一个(空){
1返回;
};

'-blf' 选项将它们格式化如下:

一体(无效)
{
1返回;
};

缩进


代码格式中的一个问题是每行应从左侧缩进多远
利润。 当语句开始时,例如 if or HPMC胶囊 遇到,
缩进级别增加了'-i' 选项指定的值。 例如,
使用“-i8”为每个级别指定一个八个字符的缩进。 当一个语句是
分为两行,第二行由一些额外的空格缩进
'-ci' 选项指定。 “-ci”默认为 0。但是,如果“-lp”选项是
指定,并且一行有一个左括号在该行上没有关闭,然后
连续行将排列在左边之后的字符位置开始
插入语。 此处理也适用于 '[' 并适用于 '{' 当它出现在
初始化列表。 例如,一段连续的代码可能看起来像这样
'-nlp -ci3' 有效:

p1 = 第一个过程 (第二个过程 (p2, p3),
第三个过程(p4,p5));

使用“-lp”后,代码看起来更清晰了:

p1 = 第一个过程 (第二个过程 (p2, p3),
第三个过程(p4,p5));

当一个语句在两个或多个括号对 (...) 之间中断时,每个额外的对
导致缩进级别额外缩进:

如果 ((((i < 2 &&
k > 0) || p == 0) &&
q == 1) ||
n = 0)

选项'-ipN' 可用于设置每个括号的额外偏移量。 例如,'-ip0'
将上述格式设置为:

如果 ((((i < 2 &&
k > 0) || p == 0) &&
q == 1) ||
n = 0)

缩进 假设标签按输入和输出的固定间隔放置
字符流。 这些间隔默认为 8 列宽,但是(从 1.2 版开始)
可以通过 '-ts' 选项改变。 制表符被视为等效数量的空格。

旧式函数定义中类型声明的缩进由控制
'-ip' 参数。 这是一个数字参数,指定要缩进多少个空格
类型声明。 例如,默认的“-ip5”使定义看起来像这样:

字符 *
create_world(x,y,比例)
int x;
输入 y;
浮标;
{
。 。 。
}

为了与其他版本的缩进兼容,提供了选项“-nip”,它是
相当于'-ip0'。

ANSI C 允许在字符之间的预处理器命令行上放置空格
'#' 和命令名称。 默认情况下, 缩进 删除此空间,但指定
'-lps' 选项指示 缩进 保持这个空间不变。 选项“-ppi”覆盖
“-nlps”和“-lps”。

此选项可用于请求预处理器条件语句可以
缩进给定的空格数,例如使用选项“-ppi 3”

#如果X
#如果是
#定义 Z 1
的#else
#定义 Z 0
#ENDIF
#ENDIF
成为
#如果X
#如果是
# 定义 Z 1
# 别的
# 定义 Z 0
# 万一
#ENDIF

此选项设置标签(案例标签除外)的定位偏移量。 如果
它被设置为零或一个正数,这表示离左边距多远
缩进标签。 如果设置为负数,则表示距
放置标签的当前缩进级别。 默认设置是 -2 匹配
早期版本的缩进行为。 注意这个参数不影响
放置案例标签; 请参阅“-cli”参数。 例如使用选项
'-il 1'


功能()
{
如果(do_stuff1()==错误)
转到清理1;

如果(do_stuff2()==错误)
转到清理2;

返回成功;

清理2:
do_cleanup2();

清理1:
do_cleanup1();

返回错误;
}
成为

功能()
{
如果(do_stuff1()==错误)
转到清理1;

如果(do_stuff2()==错误)
转到清理2;

返回成功;

清理2:
do_cleanup2();

清理1:
do_cleanup1();

返回错误;
}

BREAKING 线数


使用选项 '-ln', 或 '--line-lengthn', 可以指定最大长度
一行 C 代码,不包括它后面可能的注释。

当行变得超过指定的行长时,GNU 缩进 试图打破
线在一个合乎逻辑的地方。 这是 2.1 版的新功能,但不是很智能
或灵活呢。

目前有两种选择允许一个干扰算法
确定在哪里断线。

'-bbo' 选项导致 GNU 缩进 更喜欢在布尔值之前打破长行
运营商 &&||. '-nbbo' 选项导致 GNU 缩进 没有那个偏好。 为了
例如,默认选项 '-bbo'(连同 '--line-length60' 和 '--ignore-
newlines') 使代码看起来像这样:

如果(掩码
&& ((掩码[0] == '\0')
|| (掩码[1] == '\0'
&& ((mask[0] == '0') || (mask[0] == '*')))))

使用选项 '-nbbo' 将使它看起来像这样:

如果(掩码&&
((掩码[0] == '\0') ||
(掩码[1] == '\0' &&
((mask[0] == '0') || (mask[0] == '*')))))

然而,默认的 '-hnl' 通过给它们最高的换行符来尊重输入文件中的换行符
断线的可能优先级。 例如,当输入文件如下所示时:

如果(掩码
&& ((掩码[0] == '\0')
|| (mask[1] == '\0' && ((mask[0] == '0') || (mask[0] == '*')))))

然后使用选项“-hnl”或“--honour-newlines”,以及之前的
提到的“-nbbo”和“--line-length60”,将导致输出不是给出的
最后一个例子,但更愿意在代码所在的位置中断
在输入文件中损坏:

如果(掩码
&& ((掩码[0] == '\0')
|| (掩码[1] == '\0' &&
((mask[0] == '0') || (mask[0] == '*')))))

这个选项背后的想法是那些太长但已经被打破的行,
不会被 GNU 触及 缩进. 真的乱码应该跑通 缩进 at
至少一次使用 '--ignore-newlines' 选项。

禁用 格式化


可以通过嵌入特殊的程序部分来禁用 C 代码的格式
控制 注释 在程序中。 要关闭程序部分的格式,请将
禁用控制注释 /* *缩进关闭* */ 在那之前单独在一条线上
部分。 在此控制注释后扫描的程序文本精确地作为输入输出
不做任何修改,直到在一行上扫描了相应的启用注释
本身。 禁用控制注释是 /* *缩进* */, 以及后面的任何文本
注释行也是无格式输出。 格式化再次从输入开始
启用控制注释后面的行。

更确切地说, 缩进 不尝试验证结束分隔符 (*/) 对于这些 C
注释,行上的任何空白都是完全透明的。

这些控制注释也在它们的 C++ 格式中起作用,即 // *缩进关闭*//
*缩进*.

需要注意的是,内部状态 缩进 在整个过程中保持不变
未格式化的部分。 因此,例如,在中间关闭格式化
函数并在函数结束后继续它可能会导致奇怪的结果。 它
因此,明智的做法是在选择不格式化的代码时采用某种模块化方式。

作为历史记录,一些早期版本的 缩进 开始产生错误信息
- *缩进**. 这些版本的 缩进 被写入忽略任何输入文本行
以此类错误消息开头。 我已经从 GNU 中删除了这个乱伦的功能
缩进.

其他条款 配置


找出是什么版本 缩进 你有,使用命令 缩进 -版。 这会
报告版本号 缩进,不做任何正常的处理。

'-v' 选项可用于打开详细模式。 在详细模式下, 缩进 报告
当它将一行输入拆分为另外两行输出时,并给出一些大小
完成时的统计。

'-pmt' 选项导致 缩进 保留访问和修改时间
输出文件。 使用此选项的优点是在所有源和
项目中的头文件不会导致 使 重建所有目标。 该选项仅
在具有 POSIX 的操作系统上可用 时间(2) 功能。

使用 onworks.net 服务在线使用缩进


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。