C言語には環境にも依存するがショートコーディングの手法が多々あるので忘れないようにメモで残しておく。
宣言の省略
a,b,c;
main(){}
stdio.hのinclude文はコンパイル時にWarningが出るが、省略することができる。
また、int型の宣言は、C言語はデフォルトでintと宣言するため省略することができる。
また、グローバル変数はローカル変数とは違い、0に初期化されるのでこれらも用いることができる。
上のsample1.cではa,b,cがint型で宣言され、中身の値は0で初期化されている。
main関数のintも省略して書ける。returnも書く必要はない。
条件分岐の省略
三項演算子
int a, b, c;
c = (a < b)?a:b;
三項演算子は(条件式)?(真のとき):(偽のとき)で分岐をすることができる。
if文自体を省略
a;
main(){
!a&&printf("Hello\012");
}
「&&」を用いることで、(条件)&&(条件が真の時実行される処理)
という書き方ができる。この場合では初期化されたaの値は0なので
!aは真になり、Helloが出力される。
偽のときに実行されるようにしたい場合は「||」を用いる。
コマンドライン引数の省略
コマンドライン引数とはmain関数に渡される引数のことである。
main関数の第一引数にはintが、第二引数にはchar**が入る。実行環境によってこれは異なるが、
もしこの引数の中身の型宣言を省略したい場合、特殊な書き方が必要になる。
//main(int a,char**b){}
main(a,b)char**b;{}
第一引数のint型の宣言を省略することはできない。しかし、どちらの型宣言も省略しようとするとエラーを吐く。これを解決する為に上のような書き方をする。
この書き方にすると正規の書き方に比べて2byte分省略することができる。
自分はまだまだC言語とかショートコーディングビギナーなので間違ってるとこあったら教えてくださいm(_ _)m