C言語なら俺に聞け(入門編)Part 115 (14レス)
1-

1: [] 2013/05/16(木) 13:55:14.62 ID:MGNiMjNi(1)
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 114
2chスレ:tech
★過去スレ
外部リンク[cgi]:makimo.to:8000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
2chスレ:tech
省9
2: [] 2015/03/05(木) 01:28:26.29 ID:W8pFEDqo(1)
< `∀´>ニダー
3: [] 2015/03/18(水) 11:55:24.33 ID:SMi9Fbq0(1/3)
Cプリプロセッサの#(文字列化)が期待通りに展開出来ない理由と対策

test1.c
#define STR(x) #x
STR(hoge)
を展開(cc -E test.c)すると
"hoge"
と期待通りに展開できるが、
test2.c
#define STR(x) #x
#define S hoge
省15
4
(1): [] 2015/03/18(水) 11:56:54.54 ID:SMi9Fbq0(2/3)
続き

(3)
関数形式マクロの実引数を識別した後,実引数置換を行う。実引数の中に含まれるす
べてのマクロの展開後,置換要素並びの中の仮引数を対応する実引数で置き換える。
ただし,次の仮引数は除く
- #前処理字句又は##前処理字句が前にある仮引数
- ##前処理字句が後に続く仮引数
-> 実引数Sはマクロ展開されない

(4)
置換要素並びの中で,仮引数の直前に#前処理字句がある場合,対応する実引数の前
省17
5: [] 2015/03/18(水) 12:51:16.33 ID:SMi9Fbq0(3/3)
>>4
訂正

(3)
関数形式マクロの実引数を識別した後,実引数置換を行う。実引数の中に含まれるす
べてのマクロの展開後,置換要素並びの中の仮引数を対応する実引数で置き換える。
ただし,次の仮引数は除く
- #前処理字句又は##前処理字句が前にある仮引数
- ##前処理字句が後に続く仮引数
-> 実引数Sはマクロ展開されない

(4)
省19
6: [] 2015/03/18(水) 12:51:57.44 ID:mnTULdg5(1)
スレ番号をnetからの続きにするのやめようよ - Next2ch
next2chスレ:tech
7: 片山博文MZ◆NveQN6OtcI [sage] 2015/03/18(水) 19:23:47.32 ID:rd0I/v2M(1)
ちょうどマクロ展開の実装をするところだった。
ありがとう。参考にするよ。
8: [sage] 2015/03/22(日) 19:58:26.26 ID:hZbXpMvg(1)
2chスレ:tech
9: [] 2015/11/06(金) 07:31:00.12 ID:n3XLiNkH(1/3)
・独学で勉強中(趣味程度) linux14.04LTS メモ帳で作成
・何度書き直しても同じエラーが出る

・コード
#include <stdio.h>
int main(void)
{
struct TEST{
int figure;
short value;
char letter;
省33
10: [] 2015/11/06(金) 07:31:51.57 ID:n3XLiNkH(2/3)
訂正 ubuntu14.04LTS
11: [] 2015/11/06(金) 08:11:55.85 ID:K+BOG2oz(1)
9行目を
struct TEST test;
にしたらいい
12: [] 2015/11/06(金) 08:21:02.78 ID:n3XLiNkH(3/3)
なるほど
構造体のTEST型のtest変数を作る時にもstructは必要なのかぁ

ありがとう
13: 片山博文MZ◆NveQN6OtcI [sage] 2018/01/10(水) 21:22:29.76 ID:x8C6rZHn(1)
typedefするか、C++にすれば以降、structは書かなくてよくなるぜ。
14: [] 2022/09/24(土) 23:33:44.82 ID:JDUknmhx(1)
むしろ型自体を構造体でローカル定義してたりすんの?
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.060s*