用宏实现模板功能
来源:互联网 发布:java yield在Runnable 编辑:程序博客网 时间:2024/06/06 13:13
前言
今天遇到一道作业, 让我想了很久. 这道题真奇葩, 已经被老师玩哭了^_^
我作出来一个结果, 不知道合不合老师的心意~~
题目
4.用宏实现模板功能,分别输出void main(){ADD(int)(1,2);ADD(float)(1.0f,2.2f);ADD(int)(10,20);ADD(char*)("hello","wolrd");}
测试工程
/// @file exam_x_x.cpp/// @brief /**4.用宏实现模板功能,分别输出void main(){ADD(int)(1,2);ADD(float)(1.0f,2.2f);ADD(int)(10,20);ADD(char*)("hello","wolrd");}*/#include <iostream>#include <limits>#include "MicroTemplate.h"using namespace std;void clear_cin();void main(){ ADD(int)(1,2); ADD(float)(1.0f,2.2f); ADD(int)(10,20); ADD(char*)("hello","wolrd"); /** run result ADD(int)(1,2) = 3 ADD(float)(1.0f,2.2f) = 3.2f ADD(int)(10,20) = 30 ADD(char*)("hello","wolrd") = hellowolrd */}void clear_cin(){ cin.clear(); cin.sync();}
MicroTemplate.h
// MicroTemplate.h: interface for the MicroTemplate class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MICROTEMPLATE_H__D9D78E4F_0EE0_4768_9BA0_4C872F462072__INCLUDED_)#define AFX_MICROTEMPLATE_H__D9D78E4F_0EE0_4768_9BA0_4C872F462072__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#define ADD(x) fnAddAndPrintinline int fnAddAndPrint(int x, int y){ int Rc = x + y; printf("ADD(int)(%d,%d) = %d\r\n", x, y, Rc); return Rc;}inline float fnAddAndPrint(float x, float y){ float Rc = x + y; printf("ADD(float)(%.1ff,%.1ff) = %.1ff\r\n", x, y, Rc); return Rc;}inline char* fnAddAndPrint(char* x, char* y){ static char s_szBuf[4096] = {'\0'}; if (NULL != x) { strcpy(s_szBuf, x); } if (NULL != y) { strcat(s_szBuf, y); } printf("ADD(char*)(\"%s\",\"%s\") = %s\n", x, y, s_szBuf); return s_szBuf;}#endif // !defined(AFX_MICROTEMPLATE_H__D9D78E4F_0EE0_4768_9BA0_4C872F462072__INCLUDED_)
0 0
- 用宏实现模板功能
- 用Javascript实现Blogger/Blogspot的传统模板翻页功能
- 用函数模板来实现函数重载的功能.cpp
- 用smarty模板做数据实现修改、分页等功能
- AVLTree类模板实现(插入功能)
- 利用正则实现简单模板替换功能
- 利用可变模板参数实现log功能
- 实现一组功能的步骤及模板
- 使用模板类,模板方法实现switch case功能
- C语言简单宏函数实现C++模板功能(类型本身作为函数参数)
- 使用模板类,实现用两个栈模拟队列的功能
- Android上用模板方法模式实现具有自动重用View功能的Adapter
- XML与ASP简单结合实现HTML模板功能
- XML与ASP简单结合实现HTML模板功能
- XML与ASP简单结合实现HTML模板功能
- XML与ASP简单结合实现HTML模板功能
- 使用GridView的模板列实现在线编辑的功能
- C#利用word书签实现模板打印功能
- S5PV210环境搭建:arm-linux-gcc: 没有那个文件或目录
- 荷兰国旗问题
- leetcode:82. Remove Duplicates from Sorted List II(Java)解答
- C#委托&Lambda
- iOS 新建项目架构规范
- 用宏实现模板功能
- C++模板类线性表的实现与测试
- Java判断相等(==和equals()方法)
- 清理windows下面的垃圾
- Centos修炼----->Centos7之安装Python3.5
- Struts2的值栈详解
- Leetcode Permutations II
- 双缓冲解决Java绘图严重闪烁
- CLHLock