一个有趣的c++案例

devtools/2024/9/24 11:27:00/

 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中删除对象

http://www.ppmy.cn/devtools/47188.html

相关文章

Spring Boot集成tablesaw插件快速入门Demo

1.什么是tablesaw&#xff1f; Tablesaw是一款Java的数据可视化库&#xff0c;主要包括两部分&#xff1a; 数据解析库&#xff0c;主要用于加载数据&#xff0c;对数据进行操作(转化&#xff0c;过滤&#xff0c;汇总等)&#xff0c;类比Python中的Pandas库&#xff1b;数据…

02-DHCP原理与配置

1、DHCP的工作原理 当局域网中有大量的主机时&#xff0c;如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器地址等网络参数&#xff0c;这显然是一个费力也未必讨好的办法。 而DHCP服务器的应用&#xff0c;正好可以解决这一问题。 1.1 DHCP是什么 DHCP——动态主机…

dubbo发布服务

配置流程 通过扫描指定包路径下含有 DubboService 注解的 Bean 定义&#xff0c;把扫描出来的 Bean 定义属性&#xff0c;全部转移至新创建的 ServiceBean 类型的 Bean 定义中&#xff0c;为后续导出做准备。 服务导出 主要有两块&#xff0c;一块是 injvm 协议的本地导出&a…

Kotlin 运算符重载

文章目录 运算符函数运算符函数重载 运算符函数 我们平时使用的、-、、[]等运算符其实是以函数&#xff08;成员函数或扩展函数&#xff09;的形式实现的。对应的符号有对应的函数名&#xff0c;并且需要以operator标记。 operator fun 函数名()[: 返回值类型] [函数体]运算符…

Gradio.NET:一个快速制作演示demo网页的利器

Gradio介绍 Gradio是一个用于创建机器学习模型交互界面的Python库。它允许开发者快速为他们的模型创建一个简单的web界面&#xff0c;以便于非技术用户和其他开发者进行交互和测试。 Gradio的主要优点是易用性和灵活性。你只需要几行代码就可以为你的模型创建一个交互界面。你…

[word] word文字间隙怎么调整? #媒体#职场发展

word文字间隙怎么调整&#xff1f; 在文档中的数据包含英文、数字、中文等&#xff0c;会有间隙&#xff0c;有时候误以为是空格&#xff0c;但是根本删除不了&#xff0c;其实这是默认的间隙&#xff0c;是可以调整的&#xff0c;下面教大家word文字间隙怎么调整的操作&#…

【C++】基础复习 运算符|算数、关系、逻辑、赋值、位运算符

文章目录 1 算术运算符1.1 整数除法1.2 浮点数除法1.3 混合运算 2 关系运算符3 逻辑运算符4 赋值运算符5 位运算符6 条件运算符&#xff08;三元运算符&#xff09;7 其他重点补充 1 算术运算符 算术运算符用于执行基本的数学运算。 运算符描述示例结果加法a b两数相加-减法…

【Text2SQL 论文】PET-SQL:用 Cross-Consistency 的 prompt 增强的两阶段 Text2SQL 框架

论文&#xff1a;PET-SQL: A Prompt-enhanced Two-stage Text-to-SQL Framework with Cross-consistency ⭐⭐⭐ arXiv:2403.09732&#xff0c;商汤 & 北大 Code&#xff1a;GitHub 一、论文速读 论文一开始提出了以往 prompt-based 的 Text2SQL 方法的一些缺点&#xff1…