我在C中编写一个简单的LOC计数器来计算我的C源文件中有多少行代码。它意味着从命令行运行,将目标文件重定向为输入,并查看打印到标准输出的总行数。例如:
counter.exe < counter.c
15
到目前为止,我使用的唯一规则是:
仅计算超过3个字符的行(没有空白行或只有右括号和分号的行等)。
不要将空格计为字符。
这是我的计划:
#include <stdio.h>
int main() {
int input;
int linecount = 0;
int charcount = 0;
while ((input = getchar()) != EOF) {
if (input == ' ') {
}
else if (input == '\n') {
if (charcount > 3) {
linecount++;
}
charcount = 0;
}
else {
charcount++;
}
}
printf("%d\n", linecount);
return 0;
}
我的问题是,您是否可以对规则进行一些改进,以使其成为更有效的措施?人们经常将评论视为有效的代码行吗?空格或空行怎么样?
我不想一般就LOC计数的有效性开始辩论,这是我在几次采访中被问到的事情,我认为值得了解的是,在一般意义上,我自己有多少行代码项目是。谢谢!
答案 0 :(得分:7)
一般来说,人们会:
但是,人们也会假设/练习:
因此,代码行计数器通常会考虑计算中的所有换行符。
答案 1 :(得分:6)
不要写程序。使用wc --lines
答案 2 :(得分:2)
我意识到这是一个编程示例,但如果您想使用Windows命令行,我找到了this。
导致:
findstr /R /N "^" *.h *.c | find /C ":"
计算.h和.c文件中的所有行。
答案 3 :(得分:1)
我想我来自与kvista不同的开发风格,但我们分别计算了代码行和注释。我们预计评论将占总行数的一定百分比(评论+代码)。我们根本没有计算空白。
如果您正在寻找一些编程挑战,您可以衡量C程序的cyclomatic complexity(或条件复杂性)。
答案 4 :(得分:0)
制定计划和调试应用程序所需的时间表。请注意结束日期。
花一些时间在网上搜索以下工具:
http://www.campwoodsw.com/sourcemonitor.html
在你的日程安排中剩下的时间去度假。 : - )
否则任务变得怪异。比如解析评论。定义一行(以及一行中有多少个语句或标记)。是否计算了空白行?
节省宝贵的时间用于其他项目。使用现有工具。