developerWorks の 進化するアーキテクチャーと新方式の設計: 設計のためのリファクタリング という記事で、コードの重複を検出するツールが紹介されています。 CPD という名前で、Copy/Paste Detector の略だとか。
PMD – Finding copied and pasted code
PMD という静的コード解析ツールの一部として入手できます。
developerWorks の 進化するアーキテクチャーと新方式の設計: 設計のためのリファクタリング という記事で、コードの重複を検出するツールが紹介されています。 CPD という名前で、Copy/Paste Detector の略だとか。
PMD – Finding copied and pasted code
PMD という静的コード解析ツールの一部として入手できます。
OpenCV を触ってみようと思い、今まで避けてきた C 言語を勉強中です。 C++ や Objective-C を触るのにも必要ですからね。
で、まずは基本のキからということで、
#include <stdio.h>
int main(int argc, char** argv) {
if (argc > 1) {
printf("Hello, %s!", argv[1]);
} else {
printf("Hello, World!");
}
}
argc はコマンドライン引数の個数、argv はコマンドライン引数の配列です。 コマンドライン引数にはプラグラム名も含まれるため、引数なしの場合でも argc は 1 となります。 また、 argv の方は char* argv[] とも書くことができ、引数の文字列へのポインタの配列です。
ポインタについて勉強してみます。
int value = 10;
のとき &value で変数 value のメモリ上のアドレスがわかります。
メモリ上のアドレスを格納する変数がポインタです。
int value = 10;
int *ptr;
ptr = &a;
という感じです。
ptr の指すアドレスにある変数の値をとるには *ptr と書きます。
printf("*ptr の値は %d です。", *ptr); // *ptr の値は 10 です。