タグ付けされた質問 「macros」

*** VBA / MS-Office言語では使用しないでください。代わりに、それぞれの[vba]タグを使用してください。***マクロは、特定の入力シーケンス(多くの場合、文字シーケンス)を出力シーケンス(多くの場合、文字シーケンス)にマップする方法を指定するルールまたはパターンです。定義された手順。

7
まだ定義されていない場合にのみマクロを定義するのはなぜですか?
Cコードベース全体で、すべてのマクロが次のように定義されているのがわかります。 #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif マクロを定義するだけでなく、これらの定義チェックを行う理由は何ですか? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f 私はこの慣例がウェブのどこにも説明されていないようです。

3
ビジュアルセレクションのすべての行のVimマクロ
頭の中の行数を合計するのではなく、選択範囲のすべての行でマクロを実行したいと思います。たとえば、次のように変換するマクロを作成できます。 Last, First に First Last そして、私はそれをこれらすべての行で実行したいと思います: Stewart, John Pumpkin, Freddy Mai, Stefan ... Vimの達人のアイデアはありますか? 編集:これは単なる例であり、明らかにこれは些細なことですが、マクロを使用したいほど簡単ではない他のインスタンスが出てきます。
86 vim  macros  line 

5
バッファが終了するまでvimマクロを再生します
レジスター " x"に記録したばかりのマクロを、カーソルからバッファーの終わりまで、開いているバッファーのすべての行でvimで実行したいと思います。それ、どうやったら出来るの? マクロをn回再生できることはわかっています。 15@x ...または@、最後の行に到達するまで押し続けますが、いくつかのキーストロークを押してそれで完了したいと思います。 前もって感謝します。
85 vim  macros 

2
単に引数に展開するPROTOTYPEマクロのポイントは何ですか?
を含むヘッダーファイルがあります #define PROTOTYPE(s) s そのポイントは何ですか?入力をそれ自体に置き換えるだけのようです。 その周りには他にもたくさんのディレクティブがありますが、定義されているかどうかをチェックしたばかりのベアリングがあるように見える唯一のディレクティブです#ifndef PROTOTYPE。これを行うHDF4ヘッダーファイルの場所をいくつか見つけました#define PROTOTYPE。だから、それのどれも私の質問を本当にクリアしません。それでもかなり役に立たないようです。 使用方法は次のとおりです。 CS_RETCODE clientmsg_callback PROTOTYPE(( CS_CONTEXT * context, CS_CONNECTION *connection, CS_CLIENTMSG *clientmsg)); これは、Sybase OpenClientを使用するプロジェクトの一部です。clientmsg_callbackは後でここで使用されます: ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB, (CS_VOID *)clientmsg_callback); ここからサンプルプログラムを終了します。 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc35570.1570/html/clcprgde/clcprgde10.htm clientmsg_callbackは後で実装されます。サンプルはもともとC ++ではなくCを念頭に置いて書かれたと思います。おそらくそれはそれと関係がありますか?
82 c++  macros 

2
ラムダマクロはどのようにラムダを作成しますか?
GitHubでこのコードを見つけましたが、よくわかりませんでした。 #define lambda(ret_type, _body) ({ ret_type _ _body _; }) 次に: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 内部でアンダースコアは何をしていて、#defineどのようにして関数ポインタを返しますか?

2
手続き型マクロによって生成されたコードで衛生的な識別子を作成するにはどうすればよいですか?
宣言型(macro_rules!)マクロを記述すると、マクロの衛生状態が自動的に取得されます。この例でfは、マクロで名前が付けられた変数を宣言しf、ローカル変数になる識別子を渡します。 macro_rules! decl_example { ($tname:ident, $mname:ident, ($($fstr:tt),*)) => { impl std::fmt::Display for $tname { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let Self { $mname } = self; write!(f, $($fstr),*) } } } } struct Foo { f: String, } decl_example!(Foo, f, ("I am a Foo: {}", f)); fn …

2
マクロを使用して追加の要素で配列を初期化する
マクロに応じて2つの異なる方法で配列を初期化しています。 # if feature_enabled const int v[4] = {1, 2, 3, 4}; #else const int v[5] = {0, 1, 2, 3, 4}; #endif 問題は、割り当てのデータが実際には大きな行列であり、さまざまな理由から、わずかな変更を加えてデータをコピーするだけでは適切な解決策ではないということです(配列の先頭に1つだけ要素があります)。 最後のn-1要素を本質的に複製せずに、ここで行ったのと同じことを行う方法があるかどうか疑問に思っていました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.