質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

161閲覧

case文の「 ... 」?

Nshu

総合スコア14

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1グッド

1クリップ

投稿2018/07/27 23:44

いつもお世話になっております。

C

1switch (keycode) { 2 case KC_FN0 ... KC_FN31: 3 action.code = keymap_function_id_to_action(FN_INDEX(keycode)); 4 break; 5 default: 6 action.code = ACTION_NO; 7 break; 8}

このコード内の case文の「 ... 」。この部分の処理が分かりません。

以上です。
よろしくお願いします。

yohhoy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こちらのサイトの「switch caseで値の範囲を指定する」に該当するかと思います。

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html

標準規格でサポートしているものではなく、GCC独自拡張の機能かと思います。
※C11規格まで確認したわけではありませんが

投稿2018/07/27 23:51

angel_p_57

総合スコア1672

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nshu

2018/07/28 00:00

なるほど!ありがとうございます!
guest

0

GCCの拡張機能Case Rangesです。

KC_FN0を数値化したものからKC_FN31を数値化したものまでならば合致します。

KC_FN0およびKC_FN31の定義をみないと分かりませんが一般的に

c

1switch (keycode) { 2 case KC_FN0: 3 case KC_FN0+1: case KC_FN0+2: case KC_FN0+3: 4 case KC_FN0+4: case KC_FN0+5: case KC_FN0+6: 5 case KC_FN0+7: case KC_FN0+8: case KC_FN0+9: case KC_FN0+10: 6 case KC_FN0+11: case KC_FN0+12: case KC_FN0+13: 7 case KC_FN0+14: case KC_FN0+15: case KC_FN0+16: 8 case KC_FN0+17: case KC_FN0+18: case KC_FN0+19: case KC_FN0+20: 9 case KC_FN0+21: case KC_FN0+22: case KC_FN0+23: 10 case KC_FN0+24: case KC_FN0+25: case KC_FN0+26: 11 case KC_FN0+27: case KC_FN0+28: case KC_FN0+29: case KC_FN0+30: 12 case KC_FN31: 13 action.code = keymap_function_id_to_action(FN_INDEX(keycode)); 14 break; 15 default: 16 action.code = ACTION_NO; 17 break; 18}

と同じでしょう。

投稿2018/07/28 00:02

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問