日記の練習です。
C言語、
例題のプログラムを写経しているというよりは vim の置換やコピー&ペーストの操作を訓練している感じだし、
コンパイルしているというよりも bash の履歴展開(イベント指示子、単語指示子、修飾子)の訓練をしている感じ。
このあと for ループを sizeof 演算子で書き換えるんだけど、本日は時間切れです*1*2。
array3.c
#include <stdio.h> int main(void) { int array[] = {42, 79, 13}; printf("array[0] = %d\n", array[0]); printf("array[1] = %d\n", array[1]); printf("array[2] = %d\n", array[2]); return 0; }
array4.c
#include <stdio.h> int main(void) { int array[] = {42, 79, 13, 75, 19}; int i; for (i = 0; i < 5;i++) { printf("array[%d] = %d\n", i, array[i]); } return 0; }
shell
$ cp array3.c array4.c $ vim !$ # 直前のコマンドの、最後の引数を、 vim で開く vim array4.c $ !gcc:gs/3/4 # 直近の "gcc" で始まるコマンドの、変更をイベント行の全体に適用して、その行の "3" を "4"に置換して、実行 gcc -Wall -o array4 array4.c $ ./!!:3 # このディレクトリ直下の、直前のコマンドの3つ目の引数(0は先頭のコマンド)を、実行 ./array4 array[0] = 42 array[1] = 79 array[2] = 13 array[3] = 75 array[4] = 19 $ history 10 841 gcc -Wall -o array3 array3.c ... snip ... 846 cp array3.c array4.c 847 vim array4.c 848 gcc -Wall -o array4 array4.c 849 ./array4 850 history 10