問題タブ [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 投票する
13 に答える
71468 参照

c - ##プリプロセッサ演算子のアプリケーションと考慮すべき落とし穴は何ですか?

以前の質問の多くで述べたように、私はK&Rを介して作業しており、現在プリプロセッサを使用しています。より興味深いことの1つ、つまりCを学習しようとした以前の試みからは知らなかったことは、##プリプロセッサ演算子です。K&Rによると:

プリプロセッサ演算子## は、マクロ展開中に実際の引数を連結する方法を提供します。置換テキストのパラメーターがに隣接している##場合、パラメーターは実際の引数に置き換えられ、 ##周囲の空白が削除され、結果が再スキャンされます。たとえば、マクロはpaste その2つの引数を連結します。

#define paste(front, back) front ## back

したがってpaste(name, 1)、トークンを作成します name1

誰かがこれを現実の世界でどのようにそしてなぜ使うのでしょうか?その使用の実際的な例は何ですか、そして考慮すべき落とし穴はありますか?

0 投票する
6 に答える
86620 参照

c - Convert a preprocessor token to a string

I'm looking for a way to convert a preprocessor token to a string.

Specifically, I've somewhere got:

and I want to use it to prevent buffer overrun:

I'm open to other ways to accomplish the same thing, but standard library only.

0 投票する
25 に答える
15665 参照

c++ - マクロで使用できるトリックは何ですか?

従来のコードと最新のコードでは、マクロを使用してコード生成などの気の利いたソリューションを実行します。また、演算子#と演算子の両方を使用し##ます。

他の開発者がマクロを使用してクールなことを行う方法に興味があります。

0 投票する
12 に答える
557681 参照

jquery - jQuery オブジェクトを文字列に変換するにはどうすればよいですか?

jQuery オブジェクトを文字列に変換するにはどうすればよいですか?

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

perl - Perl出力にHASH(0xABCDEF)が表示されるのはなぜですか?

私はsun4-solaris-64int用に構築されたperl、v5.6.1を実行しています

配列でprintを呼び出しています:

出力は次のようになります。

または別の例:

出力:

どこHASH(0x2ece0)から来たの?

0 投票する
7 に答える
24519 参照

c - 文字列を作成するためのCマクロ

代替タイトル(検索を支援するため)

  • プリプロセッサトークンを文字列に変換します
  • Cマクロの値からchar文字列を作成するにはどうすればよいですか?

元の質問

コンパイル時にC を使用してリテラル文字列を作成したいと思います。#define

文字列は、デバッグ、リリースなどのために変更されるドメインです。

私はこのようなことをしたいと思います:

しかし、プリプロセッサは「」内の何も評価しません

  1. これを回避する方法はありますか?
  2. これもいい考えですか?
0 投票する
3 に答える
1213 参照

objective-c - Mac OSX/iPhone の C プリプロセッサ、「#」キーの使用?

私はいくつかのオープンソース プロジェクトを見ていますが、次のようなものがあります。

サイズ記号の直前の「#」の意味は何ですか? それはC文字列のある種の接頭辞ですか?

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

visual-c++ - Visual-C++とgccのマクロ##連結演算子の違い

私はこのようなマクロを持っています(正確ではありませんが、関数はまったく同等です):

これはVisualC++では完全に機能しますが、gcc 3.4.5(MingGW)では次のエラーが発生します。

「。」を貼り付けます 「アイテム」は有効な前処理トークンを提供しません

これは、「->」演算子を使用した場合にも発生します。これらの演算子の使用が禁止されているという連結のヒントは見つかりませんでした。

誰かアイデアがありますか?

0 投票する
8 に答える
29140 参照

c++ - テンプレート引数の文字列化

C++でテンプレート引数を文字列化することは可能ですか? 私はこれを試しました:

しかし、私が得るのは でありT、 ではありませんint。プリプロセッサ マクロは、テンプレートのインスタンス化の前に評価されるようです。

これを行う他の方法はありますか?

テンプレートのインスタンス化後に前処理を行う方法はありますか? (コンパイラはVC++です)。

0 投票する
7 に答える
5756 参照

c - このCコードはどのように機能しますか?

a##b&とは#a

このプログラムはどのように機能しますか?


出力は


今、私は方法a##b#a働きを理解しています。しかし、2つのケース(1行目と2行目)で結果が異なるのはなぜですか?