首页 文章
  • 0 votes
     answers
     views

    无法在使用该库的可执行文件中的库中导入宏

    我在从另一个箱子中获取宏来使用Rust时遇到了很多麻烦 . 我的lib.rs文件如下所示: #[macro_use] extern crate session_types; mod main; 这是我的main.rs的简化部分,演示正确使用 offer! 宏: use session_types::*; type Server = Offer<Choose<Var<Z&gt...
  • 0 votes
     answers
     views

    Clojure宏用于基准表达

    我是Clojure的新手,在创建宏时遇到了一些麻烦 . Clojure中的代码,用于评估前1,000,000个整数的总和: (apply + (range 1E6)) 此基准代码评估总和,但也打印此代码所需的纳秒数: (let [start (System/nanoTime) result (apply + (range 1E6))] end (System/nanoTi...
  • 0 votes
     answers
     views

    使用Access宏导出位置

    我有一个有趣的问题 . 我有一个访问数据库,并且有一个宏将某些查询导出到excel . 这工作正常 . 但是,此数据库保存在本地网络的共享文件夹中 . 如果我希望宏将数据库导出到用户的文档文件夹或桌面文件夹,我该怎么做? 另外,还有一种附注 - 是否可以附加某种vba代码以在excel中打开导出的文档?
  • 1 votes
     answers
     views

    如何在Scala宏中匹配部分函数的案例定义模式?

    作为宏的一部分,我想操纵部分函数的大小写定义 . 为此,我使用Transformer来操作partial函数的case定义,并使用Traverser来检查case定义的模式: def myMatchImpl[A: c.WeakTypeTag, B: c.WeakTypeTag](c: Context) (expr: c.Expr[A])(patterns: c.Expr[PartialFu...
  • 104 votes
     answers
     views

    内联函数与预处理器宏

    内联函数与预处理器宏有何不同?
  • 14 votes
     answers
     views

    为GCC运行“轻型”预处理器

    有没有办法运行GCC预处理器,但仅适用于用户定义的宏? 我有一些单行和一些 #ifdef 等条件,我想看看我的代码在扩展时的样子 . 实际上,包括扩展,我的 fprintf(stderr) 转为 fprintf(((__getreeent())->_stderr) 等 .
  • 5 votes
     answers
     views

    定义预处理器宏

    我对C比较陌生,我正在上课 . 我们的 class 被分配了一个实验室,我的老师说实验室的写作有点难以理解;但是,他没有对实验室的记录做任何改动 . 所以,我遇到了实验室的这一部分: 定义预处理器宏长期约定将宏名称大写,此宏名称必须为TRACE_FUNC . 宏有一个参数,当您将宏应用于代码时,该符号将被函数名替换 . 宏的开头如下所示:#define TRACE_FUNC(symbol)rep...
  • 4 votes
     answers
     views

    gdb从不同目录中的文件获取预处理器宏信息

    我试图调试大量使用 #define 语句来设置整个代码中使用的不同值 . 我需要能够看到这些值是什么,以帮助我调试(因为它们包括一些非常重要的信息 . 经过一些挖掘后,我发现 info macro FOO 和 macro expand FOO 命令应该能够打印这些值,如果 -g3 选项(也尝试了 -gdwarf-2 和 -ggdb3 标志)传递给编译器(如here所述) . 但是,每当我尝试使用它...
  • 0 votes
     answers
     views

    用于定义模板参数的宏,其中公开了模板参数

    是否可以创建一个宏来减少模板结构定义的样板,而模板结构只显示其所有模板参数? template < typename TPar1, int TPar2, ... bool TParN > struct MyStruct { using Par1 = TPar1; static int const Par2 = TPar2; ......
  • 0 votes
     answers
     views

    macroparadise不再使用命令行吗?

    我正在尝试开始使用天堂宏插件,所以我一直从身份宏示例开始: https://docs.scala-lang.org/overviews/macros/annotations.html 但是,当我尝试使用身份注释时,我得到了 error: enable macro paradise to expand macro annotations 正如您所期望的那样,如果没有加载插件 . 但是,我按照说明进...
  • 2 votes
     answers
     views

    如何修改多参数宏的参数?

    我在我的代码中定义了各种printf宏: #define DEBUG(...) printf(__VA_ARGS__) 这很好用: DEBUG("Hello %d",1); 会是一样的 printf("Hello %d",1); 现在我可以让我的宏也编辑传入的args,比如在第一个参数的末尾添加一个\ n吗?即以便 DEBUG("Hello ...
  • 15 votes
     answers
     views

    可以使用代码块作为C宏的参数吗?

    我有一个模式,基本上是一些样板代码,其中一部分在中间变化 if(condition){ struct Foo m = start_stuff(); { m.foo = bar(1,2); m.baz = 17; } //this part varies end_stuff(); } 是否可以使宏taht将该中间代码块作为参数? C中的宏扩展规则看起来非常复杂,所以我不确定...
  • 0 votes
     answers
     views

    C宏上的警告太多

    我正在尝试在我的代码上标记警告的方法,但我做了一些错误,无法理解在哪里 . 我的编译器给了我太多关于每次使用这个宏的警告: #define MPL_ERROR_MESSAGE2(output, fmt, ...) fprintf(output, ("\n[ERROR][%s:%d( %s )]\n--- " fmt " ---\n\n"), __FILE...
  • 7 votes
     answers
     views

    变量宏没有参数

    我正在使用一些日志记录宏,这些宏应该打印出 __PRETTY_FUNCTION__ 宏提供的信息,如果需要,最多可以打印两个参数的名称和值 . 我的代码的简化版本看起来像 template<typename Value1, typename Value2> void Log(std::string const& function, std::string c...
  • 0 votes
     answers
     views

    如果定义的表达式未定义,cpphs是错误的还是带有参数的宏的行为?

    我有以下代码在 if defined 预处理器表达式中使用带参数的宏: preprocessor-games.c : #define EXAMPLE_MACRO(arg1,arg2) (\ arg1 > arg2) #if defined(EXAMPLE_MACRO) #endif 我使用GCC对其进行预处理,它可以正常工作:...
  • 5 votes
     answers
     views

    是通过令牌连接未指定的行为重复宏调用吗?

    C11标准承认关于宏扩展中可能出现的至少一种情况的模糊性,当像宏这样的函数扩展到其未被识别的名称时,并且由下一个预处理令牌调用 . 标准中给出的例子是这样的 . #define f(a) a*g #define g(a) f(a) // may produce either 2*f(9) or 2*9*g f(2)(9) 该示例没有说明当扩展宏M时会发生什么,并且结果的全部或部分通过令牌连接贡...
  • 1 votes
     answers
     views

    Variadic宏参数计数不能按预期工作

    所以,基本上我正在尝试实现一个宏来计算 VA_ARGS 中的参数数量 . 为简单起见,它最多只能工作3个参数 . 问题是当宏使用少于3个参数时,它不起作用,并触发“预期表达式”错误 . #define EXPAND( x ) x #define PP_NARG(...) EXPAND(PP_ARG_N(__VA_ARGS__, PP_RSEQ_N())) #define PP_ARG_N(_1, ...
  • -1 votes
     answers
     views

    C:如何在宏观参数中屏蔽逗号?

    是否有一般方法来屏蔽C中宏参数中的注释?我知道括号可以用于此目的,但是如果添加的括号导致宏输出中出现语法错误,则无法使用括号 . 我听说({})可以屏蔽GCC中的逗号,但是我需要这个代码也可以在VC中工作(最近的一个版本符合关于宏中逗号的C标准) . 我也不能在我的情况下使用可变参数宏 . 我想要做的具体情况是这个(lengthof是在别处定义的宏) . 我正在尝试为整个事情编写一个宏,因为这将被...
  • 0 votes
     answers
     views

    Outlook 宏-使用模板答复发件人

    我正在尝试实现一个宏,该宏将使用共享模板答复选定电子邮件的发件人。 目前,我有两个单独的宏。 将回复发件人并插入其地址。 将用模板答复(但不插入发件人地址)。 我想知道是否可以将两者结合起来实现我的目标?这样,当您运行宏时,它将回复带有模板的电子邮件,并填写原始发件人的地址和主题? 我对 VBA 的了解非常有限,因此我不确定 if/how 是否可行。这就是我所拥有的。 1: Publi...
  • 0 votes
     answers
     views

    在宏中嵌套eval调用是不是很糟糕?

    为了说明,我们假设我在真值表中有以下宏计算行: macro bool_to_lit(a) eval(a) ? (x -> x) : (x -> !x) end macro make_clause(xs, bools, res) lits = map((x -> @eval @bool_to_lit $x), bools.args) clause_elem...
  • -1 votes
     answers
     views

    VBA将单元格数组数据复制为字符串并粘贴到新单元格中

    我在工作中使用的一种工具可以选择在Excel运行时记录数据 . 不幸的是,它吐出的数据原始形式是不可读的 . 我发现如果我复制出现在公式栏中的字符串(而不仅仅是选择单元格本身并复制)并将其粘贴到另一个单元格中,它实际上会扩展数据以使其可读 . 但是,我能够找到的所有复制/粘贴宏只是将单元格复制到另一个单元格中,在这种情况下保留了初始格式,这会破坏目的 . 我需要的是一个宏,它将复制字符串而不是单元...
  • 11 votes
     answers
     views

    将0转为无效

    在我的C(Visual Studio 2008实现)的实现上,我在 <cassert> 中看到以下行 #ifdef NDEBUG #define assert(_Expression) ((void)0) 我不明白需要将0转为void . 在我看来,这 #ifdef NDEBUG #define assert(_Expression) (0) 甚至简单地说 #ifdef ND...
  • 0 votes
     answers
     views

    如何在excel宏中按名称查找公式

    我有exel文档,其中有宏和公式 . 无法共享文档,因为它包含机密信息 . 在网上搜索但没有找到任何东西 . 在一个单元格中,我有以下公式: =method1!F3 有谁知道我在哪里可以找到这个公式和 Value ?因为我没有名称为 method1 的表格 . 我还有一张文件中的纸张,根本没有任何单元格 . 它是宏的特殊表吗?
  • 291 votes
     answers
     views

    TRUE和FALSE宏的奇怪定义

    我在编码书中看到了以下宏定义 . #define TRUE '/'/'/' #define FALSE '-'-'-' 那里没有解释 . 请向我解释这些将如何工作 TRUE 和 FALSE .
  • 7 votes
     answers
     views

    什么时候应该在Racket中使用`protect-out`?

    Racket提供protect-out以防止模块导出与eval(或解构的语法对象)一起使用,除非模块具有足够的权限(也就是说,具有strong enough code inspector) . 文档也为它的作用提供了一个很好的例子: > (module nest racket (provide num-eggs (protect-out num-chicks)) (defin...
  • 1 votes
     answers
     views

    获取VBA中所选ListBox项的顺序?

    我有两个列表框,一个在左边,一个在右边 . 理想情况下,我希望用户能够从左侧列表框中选择他想要的任何数据,然后按"Add"按钮选择要在第二个列表框 in the order they choose the item 中显示的项目 . 如果他们先选择第2项,然后选择第23项,第17项,我希望右边的列表框显示: Item 2 Item 23 Item 17 现在,虽然我可以让用户...
  • 3 votes
     answers
     views

    球拍“匹配”构造 - 它是一个宏吗?

    简单的问题 - 在Racket中 match 形式是一个宏吗?它看起来似乎可以定义为一个宏,但我认为它可能会进一步融入实现中以使其更快或某些东西......
  • 1529 votes
     answers
     views

    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 stru...
  • 9 votes
     answers
     views

    修复“没有规则预期令牌”宏错误

    我正在尝试编写一个用于解构BSON数据的宏,如下所示: let bson: Document = ...; let (id, hash, name, path, modification_time, size, metadata, commit_data) = bson_destructure! { get id = from (bson), optional, name ("_...
  • 0 votes
     answers
     views

    Excel宏:对每个工作表应用排序

    这是我用来对除两个页面之外的每个页面应用排序的代码 . 系统抛出以下错误 . “范围类的选择方法失败” . Private Sub CommandButton3_Click()Dim ws1 As Worksheet For Each ws1 In Worksheets If ws1.Name <> "Sheet1" And ws1.Name <&g...

热门问题