http://uncrustify.sourceforge.net/
Ident code, aligning on parens, assignments, etc
Align on '=' and variable definitions
Align structure initializers
Align #define stuff
Align backslash-newline stuff
Reformat comments (a little bit)
Fix inter-character spacing
Add or remove parens on return statements
Add or remove braces on single-statement if/do/while/for statements
Supports embedded SQL 'EXEC SQL' stuff
Highly configurable - 385 configurable options as of version 0.56
Output :
const char *token_names[] =
{
[CT_POUND] = "POUND",
[CT_PREPROC] = "PREPROC",
[CT_PREPROC_BODY] = "PREPROC_BODY",
[CT_PP] = "PP",
};
int main(int argc, char *argv[])
{
struct junk a[] =
{
{ "version", 0, 0, 0 },
{ "file", 1, 150, 'f' },
{ "config", 1, 0, 'c' },
{ "parsed", 25, 0, 'p' },
{ NULL, 0, 0, 0 }
};
}
color_t colors[] =
{
{ "red", { 255, 0, 0 } }, { "blue", { 0, 255, 0 } },
{ "green", { 0, 0, 255 } }, { "purple", { 255, 255, 0 } },
};
struct foo_t bar =
{
.name = "bar",
.age = 21
};
struct foo_t bars[] =
{
[0] = { .name = "bar",
.age = 21 },
[1] = { .name = "barley",
.age = 55 },
};
void foo(void)
{
int i;
char *name;
i = 5;
name = "bob";
}
/**
* This is your typical header comment
*/
int foo(int bar)
{
int idx;
int res = 0; // trailing comment
// that spans two lines
for (idx = 1; idx < bar; idx++)
/* comment in virtual braces */
res += idx;
res *= idx; // some comment
// almost continued, but a NL in between
// col1 comment in level 1
return(res);
}
// col1 comment in level 0
#define foobar(x) \
{ \
for (i = 0; i < x; i++) \
{ \
junk(i, x); \
} \
}
±¾ÎÄÌÖÂÛÁËC³ÌÐòµÄÍⲿ±äÁ¿ºÍº¯ÊýµÄһЩÐÔÖÊ£¬½áºÏʵ¼ÊµÄ±à³Ì£¬¸ø³öÁËʹÓÃÍⲿ±äÁ¿ºÍº¯ÊýµÄ·½·¨¡£
¹Ø¼ü×Ö£ºC³ÌÐò£¬Íⲿ±äÁ¿£¬º¯Êý
¡¡¡¡C³ÌÐòÓÉÒ»×é¶ÔÏó×é³É£¬ÕâЩ¶ÔÏó°üÀ¨³ÌÐòÖÐËùʹÓõıäÁ¿ºÍʵÏÖÌض¨¹¦Äܵĺ¯Êý¡£±äÁ¿¿ÉÒÔ·ÖΪº¯ÊýÄÚ²¿¶¨Ò塢ʹÓõıäÁ¿ºÍº¯ÊýÍⲿ¶¨ÒåµÄ±äÁ¿£¬Í¨³£Çé¿öÏ£¬°Ñº¯ÊýÄÚ²¿¶¨Ò塢ʹÓõıäÁ¿³ÆÎ ......
ÃèÊö ¸ø¶¨Ò»¸öÕûÊýÐòÁУ¬ÅжÏÆäÖÐÓжàÉÙ¸öÊý£¬µÈÓÚÊýÁÐÖÐÆäËûÁ½¸öÊýµÄºÍ¡£ ±ÈÈ磬¶ÔÓÚÊýÁÐ1 2 3 4, Õâ¸öÎÊÌâµÄ´ð°¸¾ÍÊÇ2, ÒòΪ3 = 2 + 1, 4 = 1 + 3¡£ ÊäÈë µÚÒ»ÐÐÊÇÒ»¸öÕûÊýT£¬±íʾһ¹²ÓжàÉÙ×éÊý¾Ý¡£ 1<= T <= 100
½ÓÏÂÀ´µÄÿ×éÊý¾Ý¹²Á½ÐУ¬µÚÒ»ÐÐÊÇÊýÁÐÖÐÊýµÄ¸öÊýn ( 1 <= n <= 100)£¬µÚ¶þÐÐÊÇÓÉn¸öÕûÊý×é³ ......
1.ÕâÑùµÄ³õʼ»¯ÓÐʲôÎÊÌ⣿char *p = malloc(10); ±àÒëÆ÷Ìáʾ“·Ç·¨³õʼʽ” ÔÆÔÆ¡£
´ð:Õâ¸öÉùÃ÷ÊǾ²Ì¬»ò·Ç¾Ö
²¿±äÁ¿Â𣿺¯Êýµ÷ÓÃÖ»ÄܳöÏÖÔÚ×Ô¶¯±äÁ¿(¼´¾Ö²¿·Ç¾²Ì¬±äÁ¿) µÄ³õʼʽÖС£
ÒòΪ¾²Ì¬±äÁ¿µÄµØÖ·±ØÐëÔÚ±àÒëµÄ¹ý³ÌÖоÍÈ·¶¨ÏÂÀ´¶ømalloc()Éê
ÇëµÄÄÚ´æµØÖ·ÊÇÔÚÔËÐÐʱȷ¶¨µÄ¡£
2. *p++ ×ÔÔöp »¹ÊÇp ËùÖ ......