![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
000_编程语言_C
000_编程语言_C
那白色蒲公英
那白色蒲公英会弄脏你的连衣裙
展开
-
C实现时间戳加减秒数
struct datetime { unsigned short year; /* 年 */ unsigned char mon; /* 月(1 ~ 12) */ unsigned char day; /* 日(1 ~ 31) */ unsigned char hour; /* 时(0 ~ 23) */ unsigned char min; /* 分(0 ~ 59) */ unsigned char sec; /* 秒(0 ~ 59) */};static int datetim.原创 2021-07-16 09:41:43 · 769 阅读 · 1 评论 -
linux内核中的一个简单C库实现(字符串转)
#include "stdio.h"#define is_digit(c) ((c) >= '0' && (c) <= '9')int skip_atoi(const char **s){ int i = 0; while(is_digit(**s)) { i = i * 10 + *((*s)++) - '0'; } return i;}int main(){ const char *ckh1...原创 2021-06-17 23:34:48 · 115 阅读 · 0 评论 -
check_sum校验和函数,返回的是1个字节的数据
/* check_sum校验和函数,返回的是1个字节的数据 */int check_sum(unsigned char *p_data, int len, unsigned char *data){ unsigned char ret_t = 0; if (NULL == p_data || len <= 0) return -1; for (int i = 0; i < len; i++) { ret_t +=...原创 2020-09-19 14:37:20 · 1112 阅读 · 0 评论 -
16进制的字符串转换为10进制的整数
/* 单个字节转换 */int shex2int(const char *str) { unsigned int len = strlen((const char *)str); int ret; if (len > 2) return -1; sscanf(str, "%x", &ret); return ret;}/* 多个字节转换 */int shex2nint(const char *str, unsigned char *dec, unsigne.原创 2020-09-17 17:34:11 · 436 阅读 · 0 评论 -
C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
1、方法一要对绝对地址0x100000赋值,我们可以用(unsigned int * ) 0x100000 = 1234;那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?*((void (*)( ))0x100000 ) ( );首先要将0x100000强制转换成函数指针,即:(void (*)())0x1000...转载 2019-12-05 10:33:21 · 382 阅读 · 1 评论