在C++中调用C写的函数(使用lex_yacc遇到的问题)
很奇怪,以前一直以为C++是兼容C的,但是,今天用lex&yacc生成的C代码可用通过GCC的编译,
但是怎么都通不过G++的编译,而其错误很多,有可能是lex&yacc生成的C代码太老了,,,
我是这样解决的
把lex&yacc生成的代码 用 GCC -c 编译成 lex.o 的目标文件。然后 g++ main.cpp lex.o ,就OK了
记得: 在 main.cpp 中用 extern “C” 标明这个函数是来自C编译器的目标函数
extern "C" void show();
相关文档:
先用贝尔的一道笔试题简要的说明一下吧:
【题】说明以下程序。
#include
int main(void)
{
unsigned int a[3] = {0x01020304, 0x05060708, 0x090a0b0c};
unsigned int *p = (unsigned int *)((int)a +1);①
printf("%x\n", *p);
return 0;
}
【题目解析】
这段程序的输出结果应 ......
C/VC目录操作
星尘 发表于 2006-10-11 15:54:00
0
推荐
一、目录操作函数介绍
在VC++的“direct.h”中定义了以下4个函数:
int chdir(const char *); //change directory
char * getcwd(char *, int); //get current working directory
int mkdir(const cha ......
1.引言
本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试 ......
预处理器(Preprocessor)
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2). 懂得预处理器将为你计算常数表达式的值,因此,直接 ......