NJU-ProjectN / nemu

NJU EMUlator, a full system x86/mips32/riscv32/riscv64 emulator for teaching
Other
858 stars 184 forks source link

阅读代码,代码格式疑惑? #92

Closed Yjsmall closed 6 months ago

Yjsmall commented 6 months ago

遇见的疑惑🤔

阅读代码过程中,nemu/src/cpu/cpu-exec.c 54行这里的 for循环i --是分开的.

  for (i = ilen - 1; i >= 0; i --) {
    p += snprintf(p, 4, " %02x", inst[i]);
  }

nemu/resource/nemu.c 305行,这里的 for 循环 i++ 是连接一起的.

for (i = 0; i < 4; i++) {
    cmd->resp[3 - i] = readl(host->ioaddr + SDRSP0 + i * 4);
}

因为常见自增/自减运算符和变量一起的,突然发现 src 文件的大部分循环 for 的自增运算是分开的.所以非常疑惑,不是常见的 Google, LLVM风格. 这里的代码缩进部分时候使用的是制表符,但其他代码大多使用空格.

尝试自己的格式化代码遇见问题❓

当我使用配置的 clang-format工具格式化时候,还是会让原始代码结构进行变动,枚举类型换行或者压行情况,结构体数组对齐等.

阅读 clang-format styles 官方,以及使用 GPTs 的工具进行编写,但是都无法在保存后,更好格式化代码.

请问老师在格式化代码时候,是如何配置文件的? 是否可以提供代码风格的格式化文件,比如 .clang-format文件?

感谢🙏

sashimi-yzh commented 6 months ago

nemu/resource/nemu.c这个文件是从Linux驱动里面拷过来然后修改的, 所以里面的大部分代码的风格都是驱动开发者的编程习惯.

我没有配置代码风格的文件, 写多了就习惯了.

Yjsmall commented 6 months ago

嗷嗷,明白了,谢谢老师解答。