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

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

5
とは ":-!!" Cコードで?
/usr/include/linux/kernel.hにあるこの奇妙なマクロコードにぶつかりました。 /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct …
1665 c  linux  macros  linux-kernel 


14
Lispマクロが特別な理由は何ですか?
プログラミング言語に関するPaul Grahamのエッセイを読むと、Lispマクロが唯一の方法だと思うでしょう。他のプラットフォームで作業している多忙な開発者として、私はLispマクロを使用する特権を持っていませんでした。話題を理解したい人として、この機能が非常に強力になる理由を説明してください。 これを、Python、Java、C#、またはC開発の世界から理解できるものと関連付けてください。

2
OR条件で#ifdefを使用する方法
非常に基本的な質問をしてごめんなさい。#ifdefディレクティブにOR条件を設定したいのですが?どうやってするか ?私は試した #ifdef LINUX | ANDROID ... .. #endif うまく行かなかった?適切な方法は何ですか?
244 c  macros 

10
Visual Studio 2012/2013/2015/2017/2019でマクロを記録/再生できますか?
どうやらマクロはVisual Studio 2012から削除されました。 キーボードマクロの記録と再生を可能にするプラグイン/拡張機能/ツールはありますか(Visual Studio 2010の一時マクロの記録/再生と同様)。 たとえば、コードをある言語から別の言語に変換するときや、テキストリストからプロパティをすばやく生成するときなどは、通常、マクロを使用します。

8
引数の数に関するマクロのオーバーロード
私は2つのマクロFOO2とFOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... 新しいマクロFOOを次のように定義したい: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) ただし、マクロは引数の数をオーバーロードしないため、これは機能しません。 変更することなく、FOO2かつFOO3、マクロを定義するためにいくつかの方法がありますFOO(使用して__VA_ARGS__ディスパッチのと同じ効果を得るため、またはそれ以外)FOO(x,y)にFOO2、およびFOO(x,y,z)にはFOO3?
183 c  macros  c-preprocessor 

1
マクロから匿名クラスのメソッドを持つ構造型を取得する
いくつかの型のメンバーまたはメソッドで匿名クラスを定義し、それらのメソッドなどで構造型として静的に型指定されたクラスのインスタンスを作成するマクロを作成するとします。これは、2.10のマクロシステムで可能です。 0、そして型メンバー部分は非常に簡単です: object MacroExample extends ReflectionUtils { import scala.language.experimental.macros import scala.reflect.macros.Context def foo(name: String): Any = macro foo_impl def foo_impl(c: Context)(name: c.Expr[String]) = { import c.universe._ val Literal(Constant(lit: String)) = name.tree val anon = newTypeName(c.fresh) c.Expr(Block( ClassDef( Modifiers(Flag.FINAL), anon, Nil, Template( Nil, emptyValDef, List( constructor(c.universe), TypeDef(Modifiers(), newTypeName(lit), Nil, TypeTree(typeOf[Int])) ) …

30
あなたが今まで遭遇した中で最悪の実世界のマクロ/プリプロセッサの乱用は何ですか?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 これまでに遭遇した中で最悪の 現実のマクロ/プリプロセッサの乱用は何ですか(不自然なIOCCCが* haha​​ *に回答しないでください)? 本当に面白い場合は、短いスニペットまたはストーリーを追加してください。目標は、常に「マクロを使用しない」ことを人々に教えるのではなく、何かを教えることです。 ps:以前にマクロを使用したことがありますが、通常は「実際の」ソリューションがあるときに最終的にそれらを削除します(実際のソリューションがインライン化されてマクロに似ている場合でも)。 おまけ:マクロがマクロ以外のソリューションよりも本当に優れていた例を挙げてください。 関連質問: C ++マクロはいつ有益ですか?
176 c++  c  macros  preprocessor 


5
vimマクロの保存
vimエディター内に記録されたマクロを適切に保存/再利用する方法を知っている人はいますか?
166 vim  editor  macros 


2
#pragmaはC ++ 11標準の一部でしたか?
従来、C ++での複数のヘッダーのインクルードを回避する標準的で移植可能な方法は、マクロガードスキーム#ifndef - #define - #endifとも呼ばれるプリコンパイラディレクティブスキームを使用することでした(現在のコードスニペットを参照)。 #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif ただし、ほとんどの実装/コンパイラ(下の図を参照)では、と呼ばれるマクロガードスキームと同じ目的で使用できる、より「エレガントな」代替手段があります#pragma once。#pragma onceマクロガードスキームと比較して、コードの削減、名前の衝突の回避、場合によってはコンパイル速度の向上など、いくつかの利点があります。 調査を行ったところ、#pragma onceほとんどすべての既知のコンパイラーでディレクティブがサポートされています#pragma onceが、ディレクティブがC ++ 11標準の一部であるかどうかがわかりません。 質問: 誰か#pragma onceがC ++ 11標準の一部であるかどうかを誰かが明確にできますか? C ++ 11標準の一部ではない場合、それを今後のリリース(C ++ 14以降など)に含める予定はありますか? また、誰かがいずれかの手法(つまり、マクロガードと#pragma once)を使用する際の利点/欠点についてさらに詳しく説明できるとよいでしょう。


8
記録されたマクロはNotepad ++のどこに保存されますか?
同僚と共有したいマクロを記録しました。 彼のマシンに追加できるように、これらの記録されたマクロはどの場所に保存されますか? 興味がある場合、マクロは値のリストを取得し、引用符とカンマを追加してWHERE、SQLクエリの句で使用できるようにするためのものです(WHERE x IN ('value1','value2','value3'))。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.