腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
K
框架
:
宏
不是
递归
展开
的
我正在看一个教程练习( LOGIK extended练习),由于某种原因,其中一个宏规则只能
展开
一次。我没有在logik.
k
中做任何更改,只是在LOGIK模块中添加了以下几行代码,这样
K
就可以实际运行这些文件了: syntax KResult ::= Val configuration <T> <
k
>$PGM:Pgm </
k
> </T> 然后我运行: kompile --backend java logik.
k
-
浏览 13
提问于2020-05-04
得票数 0
回答已采纳
2
回答
Lisp
递归
宏
问题
、
、
、
我正在编写一个
递归
的
Lisp
宏
,取一个数字n并计算身体n次( ANSI Lisp
的
一个练习)。我尝试过两种方法--在扩展中调用
宏
,将
宏
展开
为本地
递归
函数。这两种方法都没有我想要
的
效果。这是第一个--它有一个堆栈溢出,但是当我看到它使用
宏
扩展
的
时候-1,这对我来说很好。zerop ,i) nil ,@body (n-times
浏览 2
提问于2013-05-09
得票数 2
回答已采纳
1
回答
为什么嵌套
的
宏
没有
展开
?
、
、
我在gcc-9.3.1下使用嵌套
宏
。#define A(_name) _name, _name, _name 我希望B(
k
)最初转换为P(
k
, something, something, something)(
k
),然后转换为something(
k
)。然而,compilier告诉我,对于P来说,两个论点太少了,这意味着A
浏览 0
提问于2021-12-03
得票数 0
回答已采纳
1
回答
使用预处理器
宏
组合另一个
宏
调用
、
假设我有一个C++预处理
宏
,定义如下:如果我直接使用它: X( hello );它按预期工作,并在控制台上打印如果我定义了另一个调用它
的
宏
:#define X(s) std::cout << #s Y;还能用。但是,如果我试图从两个或多个不同
的
宏
编写对X
的
调用,就会得到一大堆错误:
浏览 2
提问于2016-01-06
得票数 7
回答已采纳
1
回答
为什么
宏
扩展不
展开
Clojure中
的
嵌套窗体?
、
(if true (do (if true (do true)))据我所知,macroexpansion-1将解决第一个层次
的
扩展:但是,为什么当我再次调用macroexpand-1 (这是macroexpand应该做
的
):我得到了完全相同
的
结果?<
浏览 2
提问于2017-09-02
得票数 2
回答已采纳
1
回答
如何理解
宏
定义不变
、
实际上,我有一段连续包含
宏
的
代码。我想知道
的
是它们是如何在代码上工作
的
,因为我想通过看到下面的结果来编写自己
的
预处理器,我真的很惊讶#define char float//macro2main() int x; float z;我期望预处理后文件中
的
代码是所有三个变量x,y,
浏览 2
提问于2012-07-03
得票数 0
2
回答
lambda
宏
的
elisp
、
以下是取自subr.el
的
简短
的
lambda
宏
定义。(defmacro lambda (&rest cdr)事实上,这是一个
递归
宏
,使我处于一个修复中。有人能解释一下它是如何工作
的
吗?它返回
的
是什么: (list 'function (cons 'lambda cdr))
浏览 3
提问于2015-01-29
得票数 2
回答已采纳
1
回答
方案-引号和辅助语法
、
由于某些原因,下面的
宏
将无法使用引号。(
k
(void))))] [(_
k
(a xs ...) (ys ...)) #'(expand
k
(xs ...);; case 1 '(begin (expand
k
(
浏览 0
提问于2019-03-10
得票数 1
回答已采纳
3
回答
递归
C
宏
未
展开
、
、
我正在处理一个
递归
宏
。但是,它似乎
不是
递归
扩展
的
。下面是一个极小
的
工作示例,以说明我
的
意思:#define ignore(...)// should print: a:b:c:d // pr
浏览 5
提问于2016-04-07
得票数 2
回答已采纳
2
回答
使用前增量运算符和后增量运算符时
宏
产生
的
奇怪结果
我从这段代码中得到12和49#define product(a) a*a int i = 3, j,
k
;
k
= product(++i);} 如果不使用
宏
,而是使用一个函数,则得到9和25,这正是我所期望
的
浏览 4
提问于2016-06-11
得票数 1
回答已采纳
4
回答
为什么以下两个语句
的
输出是不同
的
?
、
[我理解连接(a##b)和字符串转换(#a) ,但是我不明白为什么在这两种情况下输出是不同
的
。]
浏览 0
提问于2009-11-06
得票数 2
回答已采纳
2
回答
减少"for“理解重复
、
、
、
在我对
的
回答中,我想删除一些重复
的
内容:(defn kw [& args] (keyword (apply strl2 all-letters] (kw l l2))我想删除重复
的
"我写了下面的
宏
: (let [symbols (
浏览 2
提问于2012-07-18
得票数 2
回答已采纳
5
回答
如何计算
递归
宏
定义
、
、
、
宏
的
这个
递归
定义做了它应该做
的
事情(对从1到n
的
整数求和): `(cond (t (+ ,n当
宏
被
展开
时,我会得到这样
的
结果:(IF (EQUAL 0 5) 0 (+ 5 (SUM-INT-SEQ (- 5 1)))) 但是因为sum-int-seq是一个
宏</e
浏览 1
提问于2011-11-23
得票数 9
回答已采纳
1
回答
预处理
宏
作为其他
宏
的
参数
、
、
、
、
define BAZ 3,7 {} main.cpp(7):警告C4003:
宏
FOO
的
实际参数不足 问题似乎是,Microsoft编译器在内部处理BAR
宏
时,没有将BAZ
宏
浏览 2
提问于2012-05-21
得票数 13
回答已采纳
8
回答
为什么"i“变量在我
的
程序中会增加两次?
、
我
的
一个朋友给我看了这个程序,问我为什么i变量会增加两次。根据我
的
理解,这一行中
的
MAX(i++, ++j);首先作为参数发送,然后递增,所以如果i
的
初始值是10,那么增量
的
值应该是11,但它将i
的
增量值显示为12。(x):(y) { int j = 5;
k
= MAX(i++, ++j);printf("%d %d %d&qu
浏览 2
提问于2011-02-03
得票数 6
回答已采纳
1
回答
#define
的
奇怪行为
、
我在C++中有这样
的
代码:#include <iostream> int const bar = 0; #define foo
浏览 0
提问于2013-02-01
得票数 0
回答已采纳
3
回答
预处理
宏
是如何工作
的
?
、
、
#define B 100+B{} "B未在这一范围内宣布“。如果此错误是因为编译器在
宏
替换后删除了它,那么下面的代码如何正常工作,当B在提供给A之前必须已经删除了?
浏览 7
提问于2012-08-05
得票数 6
回答已采纳
1
回答
Clojure
宏
扩展
、
为什么扩展到而扩展为换句话说,为什么在第二个示例中->没有完全扩展?
浏览 3
提问于2010-11-29
得票数 8
回答已采纳
2
回答
预处理器令牌扩展
、
、
我对预处理器如何工作
的
心理模型显然是不完整
的
,这让我发疯。#define MERGE(x, y) x ## y 但是BAR仍然扩展到bar_ANSWER,而
不是
bar_42。所以我定义了另一个
宏
HELPER #define BAZ HELPER(baz
浏览 3
提问于2010-11-26
得票数 15
回答已采纳
2
回答
C预处理器
宏
扩展
、
、
我有以下
宏
:#define _B(x) "B" _##x其思想是,这些
宏
中
的
每一个都使用连接来创建一个新表达式,该表达式本身可以是一个
宏
--如果它是一个
宏
,我希望对其进行扩展:X(x) expands to _xX(A(B(x)))
浏览 2
提问于2017-07-28
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Python深度学习的十大入门视频教程
最容易忽略的C语言知识点细节,编程大牛进阶之路!
宏定义 解释和说明
对话框窗口过程的另外一种实现方法
KMP算法那些事
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券