C
黑默丁格
成长
展开
-
linux编译静态库和共享库
假如有两个向量操作的C文件addvec.c和multvec.c。若要把他们编译成静态库libvector.a,首先要将两个C文件经预处理,编译,汇编得到可重定位目标文件(.o),然后要使用AR工具将其编译为静态库(.a)。gcc -c addvec.c multvec.c //得到.o文件ar rcs libvector.a addvec.o multvec.o //得到.a文件...原创 2019-12-30 13:16:56 · 189 阅读 · 0 评论 -
C语言返回字符指针的几种办法
用malloc在堆上分配空间,并返回。要注意的是,在调用函数中要free掉分配的空间。 将返回的字符指针作为函数形参传入,使用后返回该指针。 返回全局变量的字符指针。 在函数中使用static变量,放在bss段。...原创 2019-12-28 22:20:26 · 1314 阅读 · 0 评论 -
开源库“uthash.h”使用方法记录
"uthash.h"是一个非常好用的C语言关于哈希表的开源库,现将此使用方法做一记录。“uthash.h”直接从GitHub上Clone就行了。使用时#include "uthash.h"即可。下面重点说一下相关函数使用方法。首先需要一个结构体:struct hash_table{ int key; int value; //any type UT_...原创 2019-12-23 19:04:25 · 1511 阅读 · 0 评论 -
C语言scanf函数%c格式符存在问题的解决办法
在%c前面加一个空格,忽略前面数据输入时存入缓冲区中的回车符,避免被后面的字符作为有效字符读入。 main(){ char c; while(1){ printf("input: "); scanf(" %c",&c); //%c前面加一个空格 printf("%c : %d\n",c,c); }}...原创 2019-01-20 21:40:52 · 668 阅读 · 0 评论 -
C 语言两个浮点数比较大小的办法
浮点数并非真正意义上的实数,只是其在某个范围内的近似。因此两个浮点数比较大小时,不能简单地使用大于小于号进行比较,应该判断连个浮点数差值的绝对值是否近似为0。#include <stdio.h>#include<math.h>#define EPS 1e-7 //判断浮点数是否位于0的一个很小的邻域内[-EPS,EPS]...原创 2019-01-20 21:56:19 · 16823 阅读 · 0 评论