
C/C++
文章平均质量分 62
招财猫_Martin
这个作者很懒,什么都没留下…
展开
-
由浅入深C系列八:如何高效使用和处理Json格式的数据
经常使用Java开发的同学可能觉得这个不是个问题,fastjson对于Json格式的数据处理提供了很好的支持。顺着这个思路往下走后,在Json的官网上发现推荐了好几个c的功能库。最近的项目在用c处理后台的数据时,因为好多外部接口都在使用Json格式作为返回的数据结构和数据描述,如何在c中高效使用和处理Json格式的数据就成为了必须要解决的问题。cJson可以直接在使用的地方引用,如下面这样。如果有什么使用上的问题,欢迎留言一起讨论。也可能编译成so文件,作为库来使用。原创 2023-10-30 07:54:31 · 498 阅读 · 0 评论 -
由浅入深C系列七:工欲善其事,必先利其器,从一个makefile模板开始
关于makefile的结构,这个网上介绍的文章很多,就不重复了。需要的读者可以参考网上的文章。这里主要介绍几个重要的内置变量。$@ 表示目标文件$ ^ 表示所有的依赖文件$ < 表示第一个依赖文件表示比目标还要新的依赖文件列表以及几个在makefile里用到的默认规则。原创 2023-08-25 09:49:37 · 187 阅读 · 0 评论 -
由浅入深C系列六:C中实现字符串trim的功能
一个项目中,需要用c语言实现对字符串中的字定字符进行过滤并从字符串的删除,查询了C语言的基本库,没有发现有这样的函数,于是发挥程序员的主观能力性,自力更生就啥都有了。原创 2023-08-14 00:42:57 · 478 阅读 · 0 评论 -
由浅入深C系列五:使用libcurl进行基于http get/post模式的C语言交互应用开发
大多数在linux下的开发者,都会用到curl这个命令行工具。对于进行restful api的测试等,非常方便。其实,这个工具还提供了一个C的开发库,可以很方便的在C语言开发环境下完成基于http的请求和响应交互,高效的开发基于http/smtp等的网络应用程序。原创 2023-08-11 09:41:20 · 2278 阅读 · 1 评论 -
由浅入深C系列四:memset/memcpy源码分析,为什么这二个函数的目的字符串在前面,源字符串在后面?
memcpy/memset源码级的实现原理分析。其实真相只有一个:遵循fastcall的原则和调用约定,从右开始不大于4字节的参数放入CPU的ecx,edx,eax寄存器,其余参数从右向左入栈,从汇编实现上来看,也是遵循了这样一个调用约定。原创 2023-04-14 11:13:12 · 470 阅读 · 0 评论 -
由浅入深C系列三:strcat函数源码分析,到底是连接,还是复制?
对于strcat部分,在调用后即进行了free操作,会不会有内存使用问题?原创 2023-04-13 09:31:39 · 197 阅读 · 0 评论 -
【由浅入深C系列二】通过一个链表开始
要在C语言中使用链表,首先从定义一个链表开始。链表中通常包含节点,如下的代码示例定义了一个包含指向下一个节点指针的,包含一个整型index和16个字节长度字符串name的节点的结构体。通过一个循环,遍历链表中的每个节点,直到达到链表头。遍历过程中打印出:当前指针的地址,下一个节点指针的地址,当前节点的index和name值。mallo函数在stdlib.h文件中,包含这个文件即可以使用这个系统函数。其中,typedef是C语言中的关键字,相当于把这个结构体起了一个简单的名字。原创 2023-03-29 19:55:59 · 132 阅读 · 0 评论 -
Mysql 8.0 C API连接和获取数据实例(附解决乱码的彩蛋)
使用Mysql的C API,编写一个连接Mysql数据库实例的代码。并解决中文字符乱码问题。原创 2022-11-19 14:02:18 · 686 阅读 · 0 评论 -
【由浅入深C系列一】C标准库(C99 )接口的头文件集和功能定义参考
C99标准库头文件参考原创 2022-10-27 12:19:57 · 2048 阅读 · 0 评论 -
如何编写一个符合ANSI和UNICODE的应用程序
即使你不打算立即使用UNICODE,最好也应该着手将你的应用程序转换成符合UNICODE的应用程序。下面是应该遵循的一些基本原则:1、将文本串视为字符数组,而不是chars数组或字节数组。2、将通用数据类型(如TCHAR和PTSTR)用于文本字符和字符串。3、将显式数据类型(如BYTE和PBYTE)用于字节、字节指针和数据缓存。4、将_TEXT宏用于原义字符和字符串。5、执行全局性替换(例如用PT原创 2004-07-21 11:38:00 · 1034 阅读 · 2 评论 -
汇编32位,64位,C三种编译器实现 Hello, world! 之字节码生成比较
下列分别是三种实现的代码。#hello_32.s.data msg : .string "Hello, world!\n" len = .-msg.text.global _start_start:movl $len, %edxmovl $msg, %ecxmovl $1, %ebxmovl $4, %eaxint $0x80movl $原创 2015-11-10 11:02:02 · 810 阅读 · 1 评论 -
Java中使用JNI调用本地动态库的方法(图文详解加代码示例)
在Java中,要使用动态库,就要使用到 JNI。首先来看看百度百科对JNI的描述:从Java1.1开始,Java Native Interface(JNI)标准成为Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失平原创 2017-04-21 15:30:46 · 14028 阅读 · 5 评论