有用PHP和Javascript编程的背景,有时很难理解C和C编译器在某些情况下的行为。我刚刚遇到的一种情况(编写AVR ATmega16微控制器的程序)是将变量与定义的常量进行比较,而这些常量显然不起作用:
#define SYS_STATE_IDLE 0;
//...
char systemState = SYS_STATE_IDLE;
/...
// Main function body
int main(void) {
//...
for(;;) {
// Determine if a new key was pressed
if
我用普通的C编写了以下代码
#define _cat(A, B) A ## _ ## B
#define cat(A, B) _cat(A, B)
#define plus(A, B) cat(cat(plus,__typeof__(A)),__typeof__(B))(A, B)
int main(int argc, const char * argv[])
{
double x = 1, y = 0.5;
double r = plus(x, y);
printf("%lf",r);
return 0;
}
在这里,我希望将宏plus展开为
我不确定术语,但我想知道在下面的场景中,main.c是否可以访问x.c的#define:
/*x.h*/
#define ONE 1
/*x.c*/
#include "x.h"
#define TWO 2
/*main.c*/
#include "x.h"
int a = ONE;
int b = TWO;
如果我想知道的话,你可以告诉我运行gcc -o out main.c x.c。但这可能有效,但不正确。这就是为什么我要问你。我的目标是让#define在x.c中是本地文件,这样它们就不会与main.c中的任何其他文件发生冲突。另一方面,我确实希望x.h的x
我想在javascript中定义我自己的循环。已经存在的循环是:- for和while。我试过使用define(during,while);,但这不起作用。例如,对于一个会说西班牙语的人来说,使用mientras可能更容易,而不是时间。在C语言中,我知道你可以写
#define mientras while,但我无法在JavaScript中找到这样的方法。
do {
//code goes here
} mientras (/*condition*/);
而且会成功的。我也试过
var during = while;
我也试过
function during(e) {
while(e)
我读到了这个目标-C是通过使用预处理器指令将Smalltalk的特性添加到C中来实现的,这让我有点好奇,所以我开始修改C++中的预处理器,就因为我感到无聊并想出了这样的方法:
#include <iostream>
#include <string>
#define Constant const
#define Integer int
#define Real double
#define Boolean bool
#define Character char
#define String string;
#define System system
#define St
我已经实现了SiriKit的一些列表和Notes域。在我的基础语言,英语中,它的工作原理是理想的。现在,我正在尝试本地化应用程序的这一部分,并测试它。
在我能创建的最简单的测试中,我尝试用西班牙语运行INSearchForNotebookItemsIntent。在这一意图的文档中,“Enséame todas mis notas en appName”被列为“在appName上显示我的所有注释”的等价物。英文表单运行良好,符合我的意图和IntentsUI扩展,也就是说,启动我的扩展并产生预期的结果。
所以我把设备的语言改成了西班牙语。我把Siri改成了西班牙语。我用XCode编辑了西班牙语和西