schikura schikura 2012-12-14 21:01:51

[C] ( 0][0 )/ このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

とある組み込み系のコード。元気に動いてはいるのだが。。

#define NUM_PORT 8
#define NUM_CHANNEL 8
unsigned char data[NUM_PORT][NUM_CHANNEL];

#define BATTERY_VOLTAGE 0][0
#define MAINPOWER_VOLTAGE 0][1
// (略)
#define MOTOR_CURRENT 7][6
#define MOTOR_TEMPERATURE 7][7

#define LOW_BATTERY 0x30

void output_log(void)
{
	unsigned char i,j;
	set_new_page_log();
	for(i=0;i<NUM_PORT;i++)
	{
		for(j=0;j<NUM_CHANNEL;j++)add_log(data[i][j]);
	}
}

void check_battery_voltage(void)
{
	if(data[BATTERY_VOLTAGE]<=LOW_BATTERY)
	{
		low_battery_alert();
	}
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(7)

#1 DameotokoN DameotokoN 2012-12-14 22:10:53  

( 0][0 )/ハーイ orz

#2 junichiohashi junichiohashi 2012-12-25 10:29:26  

これはいいのか、、、w 職場では見たくない、、

#3 jkr_2255 jkr_2255 2013-02-20 08:21:40  

マクロは単なる文字列置換だから、Cの文法に沿わないものも定義できるけど…

#4 KDYM2 KDYM2 2013-02-23 15:09:12  

この発想はなかった

#5 jptakutojp jptakutojp 2013-04-08 15:02:39  

いや、これは見事w

#6 math_neko math_neko 2013-06-09 10:58:35  

ダメだ、0][0 が顔文字にしか見えなくて草不可避

#7 kogaken1 kogaken1 2013-06-09 11:05:18  

どう考えても

#define BATTERY_VOLTAGE (data[0][0])

の方が楽できるんだが。それともdata以外にmaskとかで同じ添え字を渡す必要がある場所があるのかな?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C++] お前は何も分かっちゃいない

このエントリーをはてなブックマークに追加

誰が std 名前空間内に好き放題書いて...

//「using namespace std」は厳禁なので!!
namespa...

鑑賞する »

[C] switch-caseは現場の臭いがする

このエントリーをはてなブックマークに追加

"とりあえず"で書いた 2010 年 4...

// switch-case にしたいが、関数で値を取得しないといけないため、
...

鑑賞する »