2

ここでは、数百万行のコード プロジェクトがあると言っている人をよく見かけます。これはどのように測定されますか?この番号は、「情報」メニューの下に表示されている番号ですか? マニュアルには、コンパイル可能な行のみがカウントされると記載されています (したがって、コメントや空行はありません)。

コンパイルされたソース -> コンパイルされた総行数を表示します。

しかし、マニュアルでは、コードの一部が if/then/else のようにカウントされる方法について説明していません。

if B=true
then 
   for i:= 0 to 100 
    do Stuff
else ;
  1. 青い点が付いているすべての行は「コンパイルされた行」ですか?
  2. Embarcadero コード (RTL および VCL コード) とサードパーティ ライブラリもカウントに含まれますか?
  3. (結論) Delphi プログラムに 100 万行あると誰かが言うとき、それはどういう意味ですか?
4

1 に答える 1

4

コンパイラはTotal lines、どのコードが存在するかどうかに関係なく、ユニット内の行数をカウントしていることを通知します。空白行もカウントします。新しいプロジェクトを開始します。それをコンパイルして、それが示す行数に注意してください (私の場合は 42 と表示されています)。次に、どこかに改行を 1 つだけ追加して、再度コンパイルします。コードの行がもう 1 行あると主張します (43)。そのため、コンパイラはこの数値に対してコードを考慮していないようです - 実際の改行のみです。

実際、メイン フォームのユニット (新しいプロジェクト) とプロジェクトのメイン ファイルの合計行数を追加すると、コンパイラが示すよりも合計で 2 行少なくなります (42 のうち 40)。したがって、この数字が大まかな見積もり以外の意味を持っているとは信じていません。

VCL、RTL、Indy などのライブラリはコンパイル済みであるため、この数には含まれません。プロジェクトがコンパイルが必要なライブラリまたは外部ユニットを参照している可能性があるため、それらもカウントに含まれます。

ブロックをカウントする方法について言及している限りif..then..else、5 行のコードを 1 行のコード (改行を削除) に結合することができ、それでもコンパイルされ、コンパイラは 1 行のみをカウントすることに注意してください。 5行。

于 2014-05-18T14:16:23.377 に答える