C程序计算代码行

时间:2011-03-11 15:57:33

标签: c line counter loc

我在C中编写一个简单的LOC计数器来计算我的C源文件中有多少行代码。它意味着从命令行运行,将目标文件重定向为输入,并查看打印到标准输出的总行数。例如:

  counter.exe < counter.c
  15

到目前为止,我使用的唯一规则是:

  1. 仅计算超过3个字符的行(没有空白行或只有右括号和分号的行等)。

  2. 不要将空格计为字符。

  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计数的有效性开始辩论,这是我在几次采访中被问到的事情,我认为值得了解的是,在一般意义上,我自己有多少行代码项目是。谢谢!

5 个答案:

答案 0 :(得分:7)

一般来说,人们会:

  • 将评论计为LOC
  • 将空白行计为LOC

但是,人们也会假设/练习:

  • 包含的评论是必要/有用的(不是gratituitous)
  • 空白行不会过多,并且为了提供清晰度而存在

因此,代码行计数器通常会考虑计算中的所有换行符。

答案 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

在你的日程安排中剩下的时间去度假。 : - )

否则任务变得怪异。比如解析评论。定义一行(以及一行中有多少个语句或标记)。是否计算了空白行?

节省宝贵的时间用于其他项目。使用现有工具。

相关问题