
C语言
Jayson God
人工智能,终端设备从业着
展开
-
clock() 函数
函数原型:clock_t clock(void) ;在time.h文件中,我们可以找到对它的定义:#ifndef _CLOCK_T_DEFINEDtypedef long clock_t;#define _CLOCK_T_DEFINED#endifclock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会原创 2016-12-16 17:03:42 · 938 阅读 · 0 评论 -
局部变量,局部静态变量,全局变量,全局静态变量区别:
局部变量: 栈区局部静态变量:静态区全局变量: 静态区的常量区全局静态变量:静态区在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员转载 2017-03-05 10:33:48 · 2966 阅读 · 0 评论 -
printf函数输出变量
Printf()函数是一个标准函数,它的函数原型在头文件“stdio.h”中,该函数的使用方法如下所示。printf("格式控制字符串",输出变量列表)格式字符串的内容和意义如下所示。%c : 输出单个字符,参数为该字符的ASCII码。%d : 以十进制形式输出带符号整数(正数不输出符号)。%e 或 %E : 以指数形式输出单、双精度实数,默认保留6位小数。%f : 以小数原创 2017-05-06 17:13:02 · 13805 阅读 · 0 评论 -
do{...}while(0)的意义和用法
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需要定义这样一个宏:转载 2017-06-30 10:08:16 · 316 阅读 · 0 评论 -
stderr和stdout(printf、fprintf、sprintf)
先区分一下:printf,sprintf,fprintf。1,printf就是标准输出,在屏幕上打印出一段字符串来。2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。3,fprintf是用于文件操作。 原型:int fprintf(FILE *stream,char *format,[argument]);原创 2017-07-06 09:21:12 · 1398 阅读 · 0 评论 -
结构体字节对齐pragma pack, __attribute__(packed)
一、pragma pack1、#pragma pack(push):英文单词push是“压入”的意思。编译器编译到此处时将保存对齐状态(保存的是push指令之前的对齐状态)。#pragma pack(pop):英文单词pop是”弹出“的意思。编译器编译到此处时将恢复push指令前保存的对齐状态(请在使用该预处理命令之前使用#pragma pack(push))。push和p...原创 2018-09-14 15:56:16 · 1187 阅读 · 0 评论 -
C语言实现md5函数
包含三个文件头文件md5.h#ifndef MD5_H#define MD5_H typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer[64]; }MD5_CTX; #define F(x,y,z) ((x & y) | (~x & ...转载 2019-05-26 21:37:47 · 3441 阅读 · 0 评论 -
C语言base64编解码
#include <stdio.h>#include <string.h>const char * base64char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";const char padding_char = '=';int base64_encode(co...转载 2019-05-26 22:28:46 · 1499 阅读 · 0 评论