//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开) #include<stdio.h> int main() { int i, j; scanf("%d %d", &i, &j); printf("i=%d;j=%d", i, j); return 0; } 其中printf()函数 ...
分类:
其他好文 时间:
2018-09-17 11:36:05
阅读次数:
122
原理:因为没有正确使用printf()函数 正确使用 : printf('%s',str) 不正规使用:printf(str) 控制字符串str可以爆出stack内内容从而实现任意地址读 入门题01 18行存在格式化字符串漏洞 只需输入在hello之后输入password所在地址,接收passwor ...
分类:
其他好文 时间:
2018-09-12 23:59:32
阅读次数:
420
%a 浮点数、十六进制数字和p-记数法(C99)%A 浮点数、十六进制数字和p-记法(C99)%c 一个字符(char) %C 一个ISO宽字符 %d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) %e 浮点数、e-记数法%E 浮点数、E-记数法%f 单 ...
分类:
其他好文 时间:
2018-09-12 20:11:40
阅读次数:
210
如何使用宏定义输出信息 C语言提供了#, ##, __VA_ARGS__等符号来帮助我们在宏定义中更好地输出信息。使用方式如下: 输出如下: #的作用是,它会在所引用的宏变量左右两边加一对引号。所以FUN1中的printf函数不会出错,因为FUN1(hello)预编译时被替换成了printf("he ...
分类:
编程语言 时间:
2018-09-12 01:21:15
阅读次数:
284
1 void PrintInt(int i) 2 { 3 int sign = i>0 ? 0 : 1; 4 u8 s[10]; 5 int cnt=0; 6 if(sign) 7 { 8 StatlWrite((u8 *)'-',1); 9 i = -i; 10 } 11 int ten ... ...
分类:
其他好文 时间:
2018-09-08 15:27:29
阅读次数:
121
new函数的作用其实就是动态分配一个空间,我们只需要进行使用,不需要考虑它的内存释放的它的生命周期 执行结果 ...
分类:
其他好文 时间:
2018-08-25 18:43:24
阅读次数:
149
1.建立工程 2.核心:添加新文件usar_fputc.c (名字随便自己命名),把文件添加到项目中去 #include "stdio.h" #include "stm32f1xx_hal.h" extern UART_HandleTypeDef huart1; uint8_t ch; uint8_ ...
分类:
其他好文 时间:
2018-08-23 13:11:15
阅读次数:
2289
前言 可变长参数指函数的参数个数在调用时才能确定的函数参数。基本上各种语言都支持可变长参数,在特定情形下,可变长参数使用起来非常方便。c语言中函数可变长参数使用“...”来表示,同时可变长参数只能位于固定参数的后面,固定参数的个数至少为1。只要学习过c语言的,应该都知道printf函数,并且见识到了 ...
分类:
其他好文 时间:
2018-08-15 19:03:26
阅读次数:
178
一、概述 运用标准C的头文件stdarg.h提供的宏可以实现函数的自定义传参个数; 二、语法 1.va_list是一个可变长参数类型,在使用可变长参数的函数中可以定义1个或多个va_list类型参数,等待va_start初始化后使用; 2.va_start作用是给va_list类型变量绑定一个起始值 ...
分类:
其他好文 时间:
2018-08-07 13:06:39
阅读次数:
190
本文作者:Tangerine@SAINTSEC 原文来自:https://bbs.ichunqiu.com/thread-42943-1-1.html 0×00 printf函数中的漏洞printf函数族是一个在C编程中比较常用的函数族。通常来说,我们会使用printf([格式化字符串],参数)的形 ...
分类:
系统相关 时间:
2018-07-18 17:03:26
阅读次数:
247