copy and destroy

catch and eat

日記の練習です。

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


vim-jp.org

linuxjm.sourceforge.io

*1:例題では sizeof 演算子をカッコでくくって使っているので printf と同じライブラリの関数かと思ったら C言語 の演算子だったというのと、その出力?戻り値?を printf しようとしたら型がわからなくてハマったせい

*2:int 型の配列の sizeof の戻り値、コンパイラがエラーで教えてくれて long int だって

powered by hatena blog.
the nikki system for lifelogging junkies.

all posts © their original owners.
writing is reusable solely under the by creative commons license.