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(...)
#endif
void 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.cpp
all:$(TGT)
@echo "Make successfull!"
$(TGT):$(SRC)
g++ -std=c++11 $(OPTION) $^ -o $@
clean:
ifneq ( ,$(TGT))
@rm $(TGT)
else
@echo "no fi
e 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中删除对象