概念

write a program programing for you ,that's call metaprogramming.

写一个程序,让它帮你写程序

需求

计算20以内的斐波那契数列

动态计算

#include <stdio.h>
int fib(int n){if (!n) return n;int a = 0,b = 1, c;for(int i = 1; i < n; i++) {c = a + b;a = b;b = c;}return b;
}
int main() {printf("%d\n", fib(4));
}

提前计算

// fib_calc.cpp
#include <stdio.h>
int fib(int n){if (!n) return n;int a = 0,b = 1, c;for(int i = 1; i < n; i++) {c = a + b;a = b;b = c;}return b;
}
int main() {printf("int fib_array[] = {\n");for (int i = 0 ; i <= 30; i++)printf("%d,\n", fib(i));printf("};\n");
}

将输出结果存入数组,然后到处到头文件再include

这里的fib_calc.cpp文件就是metaprogramming; 这种需求很常见;静态编译语言也就集成到自己的编程标准中;如C++ template;

C++则做了很多的优化,更加的完善;

什么是 metaprogramming相关推荐

  1. Ruby Metaprogramming

    Ruby使用者对attr_accessor一定不会陌生. class Aattr_accessor :num end 等效于: class Adef num@numenddef =(value)@nu ...

  2. 周末话题-元编程(metaprogramming)

    在计算机行业永远不缺乏的是什么? 概念和新名词 我们已经见了太多太多的名词,现在都有点名词麻痹症了.就在这些名词中间有一个单词忽隐忽现的闪烁着自己的光芒----meta. 在牛津大辞典里对meta这样 ...

  3. Template Metaprogramming

     Template Metaprogramming 1. 何谓 Metaprogramming? Metaprogram: program that manipulates another progr ...

  4. practical c++ metaprogramming(翻译及学习)

    前言 感兴趣的推荐看原文吧,我这里只是学习记录,价值一般,就是做个记录 https://www.researchgate.net/publication/323994820_Practical_C_M ...

  5. Ruby元编程技术(Ruby Metaprogramming techniques)

    我最近考虑了很多元编程(Metaprogramming)的问题,并希望看到更多这方面技术的例子和讲解.无论好坏,元编程已经进入Ruby社区,并成为完成各种任务和简化代码的标准方式.既然找不到这类资源, ...

  6. Python中的元编程(Meta-Programming)

    元编程:是编写出可以操作的代码的行为,即用代码来操作另一个代码. Python中的元编程:一种构建函数和类的行为,这些函数和类可以通过修改.包装现有代码或生成代码来进行操纵. Python中元学习的实 ...

  7. metaprogramming笔记

    动态多态与静态多态 动态多态:允许我们通过单个基类指针或引用处理多个派生类型的对象. 模板元编程中强调静态多态,允许不同类型的对象以同样的方式被操纵,只要它们支持某种共通的语法即可. 动态多态,连同& ...

  8. Agile DSL Development in Ruby 笔记

    pdf见:http://obiefernandez.com/presentations/obie_fernandez-agile_dsl_development_in_ruby.pdf 1. What ...

  9. Rust 1.30带来更多元编程支持,并改进了模块系统

    Rust的最新版本1.30扩展了过程宏,允许它们定义新的属性和类似于函数的宏.此外,它简化了Rust模块系统,使其更加一致.直观. Rust 1.30引入了两种新类型的过程宏,"类属性的过程 ...

最新文章

  1. R语言可视化学习笔记之相关矩阵可视化包ggcorrplot
  2. 2017-5-17 分析文本
  3. PHPcms 把盛大登陆换成人人网登陆
  4. 水光半导体于2017 CES展示全方位通讯网络、多媒体及消费性电子芯片解决方案
  5. 【原】win 7 屏幕旋转问题的解决
  6. CAShapeLayer把图片做成圆形效果
  7. 大话数据结构——烂笔头
  8. 朴素贝叶斯详解及其python实现
  9. 盘点≠走过场,哪些功能可以进行高效库存盘点?
  10. 为什么说中小学编程教育是创新思维体操
  11. 介绍 json_介绍
  12. 锐龙R3 4300U和i5-9300H 哪个好
  13. 请教统计对应表字段为空的字段数
  14. V831——车牌识别
  15. 基于stm32人体健康监测系统
  16. ios swiftui_ios swiftui中的本地化
  17. 为什么不敢和别人竞争_为什么你很难交到朋友?可能是因为你不敢信任他人
  18. java学习--容器(1)
  19. [NC207040]丢手绢
  20. 简历中的自我评价怎么写?

热门文章

  1. 《RCLane:Relay Chain Prediction for Lane Detection》论文笔记
  2. 基于Oneplus 7 Pro的Flyme9&MIUI12.5刷机教程
  3. Javaweb学习第三天,CSS(知识点来自广陵散老师总结)
  4. 启发式搜索(Informed Search)-贪婪算法GBS+A*算法
  5. SAS统计初学1-卡方检验
  6. 8,verilog基本逻辑运算
  7. 现代数据环境下,如何做数据集成?这11个靠谱实践收藏了
  8. ipad已有2周未备份。ipad插入电源、被锁定且接入Wi-Fi时会进行备份
  9. 【学习 · 求职必备】学CV必须关注的会议与期刊
  10. 计算机培训研修心语,学子榜样 | 2018级国家励志奖学金程春旭:不忘初心,砥砺前行...