我正在做一个小型宏项目,该项目需要将二维数组文字传递给我的一个宏,例如:myMacro({{0, 1, 2}, {2, 1, 0}})
。不必将数组文字的大小传递给宏,是否有办法将其扩展为以下内容:int[2][3] = { {0, 1, 2}, {2, 1, 0} }
或等效的东西(任何保留数组形状的初始化都将起作用)?预先感谢您的任何帮助
是的,所以这是一个奇怪的问题,让我感到惊讶.基本上,我正在构建一个构建系统,它允许您在主构建之前和之后运行shell命令.要执行这些命令我只是使用Sys.command
.问题是每当我使用该函数时,它都会改变调用函数的顺序.例如:
Sys.command "echo 'Hi!'";
Printf.printf "second\n";
Sys.command "echo 'Bye!'"
Run Code Online (Sandbox Code Playgroud)
输出
Hi!
Bye!
second
Run Code Online (Sandbox Code Playgroud)
来自REPL和已编译的可执行文件.但是,如果我使用任何其他功能,它似乎工作正常.有趣的是,如果我定义一个函数来调用Sys.command
它仍然以错误的顺序执行.我已经在GNU/Linux上运行的4.02.1和Cygwin中的4.01.0上测试了这一点,并且在两者上都获得了相同的行为.据我所知,;
这不会影响通话顺序.我在这里错过了什么吗?