有时,C中的数组初始化会延伸到多行,特别是如果数组是多维的.在Emacs中,自动缩进的结果如下所示:
int a[N][N] = {{0, 0, 6, 7, 0, 4, 0, 2, 0},
{0, 5, 0, 6, 0, 0, 0, 0, 1},
{2, 0, 0, 0, 0, 8, 0, 0, 4},
{4, 0, 9, 5, 0, 7, 0, 0, 3},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{8, 0, 0, 2, 0, 1, 9, 0, 6},
{6, 0, 0, 1, 0, 0, 0, 0, 7},
{3, 0, 0, 0, 0, 5, 0, 6, 0},
{0, 2, 0, 3, …Run Code Online (Sandbox Code Playgroud) 在Kernighan和Ritchie 的第二版"The C Programming Language"中,他们实现了UNIX命令的简化版本ls(第8.6节"示例 - 列表目录",第179页).为此,它们创建以下接口,该接口提供对存储在目录中的文件的名称和inode编号的系统无关的访问.
#define NAME_MAX 14 /* longest filename component; */
/* system dependent */
typedef struct { /* portable director-entry */
long ino; /* inode number */
char name[NAME_MAX+1]; /* name + '\0' terminator */
} Dirent;
typedef struct { /* minimal DIR: no buffering, etc. */
int fd; /* file descriptor for directory */
Dirent d; /* the directory entry */
} DIR;
DIR *opendir(char *dirname);
Dirent *readdir(DIR …Run Code Online (Sandbox Code Playgroud)