動機C言語で書かれたプログラムが複数ある時に、どちらが長いのか、何倍くらい長いのかという比較をしたいことがある。いう比較をしたいときは処理内容で比較をしたいので、コメントが多いか少ないかとか、変数名や関数名が長くて分かりやすいか1文字になっていて分かりにくいかとかで差が出ないほうが望ましい。いう時、コンパイルしてバイナリの長さで比較するという手法は有効であるが、コンパイラは使ってない変数を削除するなどもやってくれて書いてあることがそのままには反映しない場合もあり、またコンパイラの最適化性能やターゲットのCPUの命令セットの優劣で左右されるのも不本意なので、もっとシンプルなものがあったらいいのにとKは考えた。基本的な仕組みソースコードのサイズを測れます。基本的にはバイト数です。コメントはカウントしません。変数名や関数名や構造体名が長くても短くてもカウントには影響しません(すべて1文字換算でカウント)。スペースやタブや改行もカウントしません。()や{}もカウントしません。a[1]constはカウントしません(constを省略して危険なことをやってほしいわけではないので)。#include行はカウントしません(ソース分割を妨げたくないので)。