zoukankan      html  css  js  c++  java
  • C语言变参函数的两个实现

    作者:朱金灿
    来源:http://blog.csdn.net/clever101/


          国庆假期看了《程序员的自我修养——链接、装载和库》的大部分,其中P337提到了C语言变长参数的一些实现原理,书上的一个例子是(我对书上的代码作了一些小改动,书上的例子编译有点小问题):



          这里利用了函数的栈上的位置依次排列的原理(即不定参数的地址依次在变量num的高地址方向,同时函数调用约定采用的是cdecl)。下面是我参考MSDN实现和C语言的printf函数一样功能的MyPrintf函数:



    上面两个函数的测试代码:



    测试环境:Win XP + sp3, VS 2008 + sp1,unicode字符集。


    参考文献:


    1. 《程序员的自我修养--链接、装载和库》,俞甲子 / 石凡 / 潘爱民

    2. MSDN(与VS 2008 + sp1配套)








  • 相关阅读:
    模板汇总——Tarjian
    CountHunter 6101 最优贸易 强联通缩点
    POJ-3662 Telephone Lines 二分+双端队列
    EF-获取自增ID值
    EF-记录程序自动生成并执行的sql语句日志
    EF-使用迁移技术让程序自动更新数据库表结构
    EF-关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析
    javascript进阶笔记(3)
    javascript进阶笔记(2)
    javascript进阶笔记(1)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470996.html
Copyright © 2011-2022 走看看