C高级使用技巧整理
这里收集一些C语言使用中的高级技巧,这些技巧都是一些基本语法的巧妙使用,但是首次看到这样的用法会感觉眼花缭乱。
一、main函数的封装
在一些库中,为了集成度更高,往往会把main函数封装到库中,而提供给用户使用的是另一个自定义函数,这时候就会用到main函数的封装了,这里使用的是宏定义的技巧:
#define MyMain \
MyAppMain(int argc, const char *argv[]); \
int main(int argc, const char *argv[]) \
{ \
//do something for init; \
MyAppMain(argc, argv[]); \
//do something for end; \
} \
int MyAppMain
真正的应用程序只要用
int MyMain(int argc, const char *arg[])
做为程序的主入口,不需要main函数了。
相关文档:
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
//Lua示例代 ......
前面一篇我们介绍了结构体,这篇终于能够介绍函数了。为什么这么说呢?因为函数非常重要。就这么简单。嘿嘿!之所以在这时才讲函数,是因为本篇将联系到前面的每一篇,这样函数才能体现的透彻。那我们就迫不及待的切入正题。
从第一篇Helloworld开始到现在,就没有脱离函数。那就是我们的main函数。main函数也是一个普通的 ......
你说是写个动态库不就行了,还说写脚本,脚本跟动态库差别大去了
gcc编译的时候就能生成动态连接库
windows下面没有so的概念,windows叫dll
搜下Linux gcc 动态库
编写好c语言程序,就是file系统调用的几个函数,fopen,fread之类的
gcc编译成so文件,一个命令就搞定,我忘记具体的选项了 ......
陆其明 译
原文:
http://www.codeproject.com/cpp/complex_declarations.asp
作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的 ......
一、函数调用的基本步骤
函数调用大致包括以下几个步骤。
(1)参数入栈:将参数从右向左依次压入系统栈中。
(2)返回地址入栈:将当前代码区调用指令的下一条指令地址压入栈中,供函数返回时继续执行。
(3)代码区跳转:处理器从当前代码区跳转到被调用函数的入口处。
(4)栈帧调整:具体包括:
保存当前栈帧状态 ......