問題タブ [stringification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2502 参照

c - Stringify C 前処理

これは私の最初の投稿です。漠然としすぎている場合や、誰もが直感的に推測できる情報を提供している場合は、お知らせください。

私はCで書くのが初めてで、前処理をよりよく理解しようとしています。を使用してコンソールから直接引数を受け取ることができる単純なプログラムを作成していますgcc -Wall -std=c99 -DSEED=argument。ここで、引数は整数である必要があり-Dます。定義されていない場合はユーザーが入力します。

SEED 値は単に で使用されsrand()ます。-DSEED=a引数としてを入力するとコンパイルされるのに、なぜコードがコンパイルされないのか、非常に混乱してい-DSEED=1ます。「âaâ undeclared (first use in this function)」というエラーが表示され、2 つの違いがよくわかりません。変数の型を入力と一致させたと思った#defineので、「a」を入力すると #SEED は char になり、「1」を入力すると #SEED は int になります。

SEED が定義されていない場合は、#ifndef SEEDコマンドを使用していますが、これはうまく機能します。SEED入力を「文字列化」してから、それが整数かどうかを確認できると思います。オンラインでいくつかの記事を読んだ後、私は使用しようとしています:

これは機能していません。私が持っていると思われる誤解を指摘できる人なら誰でも大歓迎です。

編集 - を試したときにエラーメッセージが表示された理由はわかりまし-DSEED=aた。変数として読み取っていたからです。

0 投票する
1 に答える
562 参照

c - Cの文字列化を使用してプリプロセッサで計算を実行する方法

重複の可能性:
C で式を文字列化する方法

ここで私の問題の解決策が見つかることを願っています。

ADD1 で定義された 16 進数を追加したいので、同じものを*str文字列形式で入力する必要があります。

これは、最初にその可能性を証明するための例にすぎません。私は実際にヘッダーファイルで同じことをしています。

0 投票する
4 に答える
2701 参照

c-preprocessor - コンパイラはこのマクロで何を見ていますか?

このことを考慮:

その後、次のように書きます。

コンパイラは実際にこれを見ていますか?

#Aその前に追加のハッシュがあると混乱していると思います。

0 投票する
0 に答える
270 参照

c++ - 文字列データ メンバーとしての変数名

private std::stringC++ では、インスタンス シンボル名の文字列化/文字列化された名前で初期化されるデータ メンバーを持つクラスを宣言することは可能ですか? これは一時的には機能しないことがわかりますが、左辺値では可能ですか?

これが私が望むものです:

文字列を受け入れるようにコンストラクターを変更し、プリプロセッサ マクロを導入すると、必要なものはほとんど得られますが、臭いがします。

基本的に私が避けたいのは、ユーザーが次のようなシンボルのインスタンスを宣言する必要があることです:

読むのも入力するのも面倒で、冗長だからです。変数名とは異なる文字列を保存したい場合がある理由はわかりますが、文字列を文字列化された変数名と同じにしたいという問題を解決しようとしています。

0 投票する
1 に答える
152 参照

c++ - マクロでのC++連結

次のマクロのセット(文字列でコンパイル時定数__LINE__を使用するにはどうすればよいですか?)を定義し、マクロ'LOCATION_PREFIX'を使用して「キャプチャ」することができます。コード行の場所(ロギングを実行する他の関数に渡されます)。

出力:

"t.cpp"(8):ここ
"t.cpp"(9):ここ

出力を次のようにします。

t.cpp(8):ここ
t.cpp(9):ここ

どんな助けでも大歓迎です!

0 投票する
3 に答える
4075 参照

c++ - メンバー変数名を文字列に変換します

char*C ++でクラス(または構造体)のメンバーを列挙できますか?もしそうなら、変数名を文字列として出力できますか?プリプロセッサを使用していますか?

すべてのconstchar*メンバーがいるクラスがあります。各メンバー変数を列挙し、与えられた文字列キーに対して文字列として名前をチェックする洗練された方法があればよいでしょう。

これが使用できるコードの種類ですか?

誰かがこれを行う方法を考えることができますか?

0 投票する
1 に答える
95 参照

c++ - 文字列化する C++ 関数を書くことは可能ですか?

マクロの演算子 '#' と同じことを行う適切な C++ 関数を作成する必要があるとしたら、どうしますか?

実行時にそれを行うことができれば便利です。

0 投票する
1 に答える
78 参照

c - この文字列化エラーを修正する方法

コンパイラ エラーが発生します。

main.cpp(5): エラー C2059: 構文エラー: 'return'

私は何を間違えましたか?

0 投票する
2 に答える
33582 参照

c++ - 文字列化 - どのように機能しますか?

そんなこと知ってる:

with str(foo)writes out: "foo"、 stringify はテキスト展開の最初に実行されるためですが、これは:

withxstr(foo)書き込み: "4".

なんで?プロセスに含まれる手順は何ですか?