1. 源码
#include <stdio.h>
#include <stdint.h>
#include <iostream>using namespace std;uint8_t a = 0;
uint8_t b = 0;#define MY_LOG#ifdef MY_LOG#define my_log(...) printf(__VA_ARGS__); fflush(stdout)#else
#define my_log(...)
#endifvoid printf_info(){cout<<endl;fflush(stdout);}template <typename T, typename... Types >
void printf_info(const T first_arg, Types&... other)
{cout << first_arg;printf_info(other...);fflush(stdout);
}int main(int argn, char* argv[])
{my_log("a:%d, b:%d\n",a, b);int aa = (int)a;int bb = (int)b;printf_info("a:",aa, " b:", bb);a = b + 1;b = 1;return 0;
}
2.Makefile
TGT := app
OPTION := -I.
SRC = reorder_demo.cppall:$(TGT)@echo "Make successfull!"$(TGT):$(SRC)g++ -std=c++11 $(OPTION) $^ -o $@clean:ifneq ( ,$(TGT))@rm $(TGT)else@echo "no fie exist, nothing to do"endif.PHONY: all clean
3. 结果
xuehy@ubuntu:~/code/cpp_demo$ ./app
a:0, b:0
a:0 b:0
4. 后记
一切好处尽在不言中,蕴含知识点如下如下
- log的重定义
- 变数参数函数
- makefile中删除对象