小编vpi*_*833的帖子

Emacs,命名空间和defuns

我唯一不喜欢Emacs的是缺少命名空间,所以我想知道我是否可以自己实现它们.

是我的第一次尝试,很明显,我不能用其前缀版本替换名称的每个匹配,但我应该检查什么?我可以用(let)检查绑定然后标记整个子树,但是如果有人创建了一个使用let的(my-let)函数呢?我的努力注定会失败吗?:(

另外,为什么我的defuns无法定义函数?我是否必须在每个新令牌上运行类似于实习符号的内容?

谢谢!

emacs elisp

8
推荐指数
2
解决办法
1200
查看次数

如何在GCC-> C中将flex和bison文件输出链接在一起

我最近一直在学习flex(不是adobe flex),并且我一直在成功使用flex输出文件(只需编译生成的lex文件即可)。现在,我遇到了野牛,并且我读到野牛使用lex文件从输入中获取标记。

但是现在我有一个问题:我坐在gcc前面,我不知道如何将flex文件(lex 1)和野牛1链接在一起。

我的问题是,如何在gcc中将它们链接在一起?

c lex bison

1
推荐指数
1
解决办法
6449
查看次数

将struct指针传递给不起作用的函数

动机:将结构传递给函数,例如我们可以在任何函数中更改它并检索任何函数中的任何值.

我从以下网站获取了这些代码:http://cboard.cprogramming.com/c-programming/126381-passing-structure-reference-through-4-functions.html#post942397

我调整了一点,这里是:

struct_passing.h

typedef struct thing {
    char *x;
}thing_t;

struct_passing.c


#include <stdio.h>
#include "struct_passing.h"

void f4(thing_t *bob) {
    bob->x = "changed";
}

void f3(thing_t *bob) {
    f4(bob);
        printf("inside f3 x: %s\n", bob->x);
}

void f2(thing_t *bob) {
    f3(bob);
}

void f1(thing_t *bob) {
    f2(bob);
}

int main(void) {
    thing_t foo;
    foo.x = "same";
    printf("Before: %s\n", foo.x);
    f1(&foo);
    printf("After: %s\n", foo.x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它在ubuntu上的**gcc版本4.4.3上按预期工作

$ gcc -o struct struct_passing.c 
$ ./struct
Before: same
inside f3 …
Run Code Online (Sandbox Code Playgroud)

c gcc struct pointers freebsd

1
推荐指数
1
解决办法
2725
查看次数

标签 统计

c ×2

bison ×1

elisp ×1

emacs ×1

freebsd ×1

gcc ×1

lex ×1

pointers ×1

struct ×1