c
xxgxgx
这个作者很懒,什么都没留下…
展开
-
详解字符数字转换 atoi 与 strtol
众所周知,C++中的字符转换atoi 与 strtol很重要,但同时它也让很多人头痛不已,现在达内的老师们为大家提供一些总结,供大家参考,大家要仔细的记录下来啊。在很多时候我们都很清楚 atoX 系列函数: atoi , atol , atof 新来的一系列函数: strtol, strtoul, strtod 通常有如下的关系: 1. 对应关系其中: atoi (把字符串转载 2015-06-23 21:51:12 · 1748 阅读 · 0 评论 -
linux c常用字符串处理函数
一、puts名称:puts功能: 向显示器输出字符串。头文件:#include .h>函数原形:int puts(const char *s);参数: s 字符串 返回值: 成功返回输出的字符数,失败返回EOFput函数与printf函数在字符串输出中的区别:puts在输出字符串时,遇到'\0'会自动终止输出,并将'\0'转换为'\n'来输出。Printf在输转载 2016-03-31 10:27:40 · 481 阅读 · 0 评论 -
指针数组与数组指针
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[i] *(a[i])是转载 2016-02-22 19:20:55 · 357 阅读 · 0 评论 -
linux下获取当前时间(精确到毫秒)
#include <stdio.h> #include <time.h> #include <sys/time.h> void sysLocalTime() { time_t timesec; struct tm *p; time(×ec); p = localtime(×ec);转载 2016-04-07 09:06:10 · 7023 阅读 · 0 评论 -
*** glibc detected *** free(): invalid pointer: *** glibc detected *** malloc(): memory corruption:
* glibc detected * free(): invalid pointer: * glibc detected * malloc(): memory corruption: * glibc detected double free or corruption (out): 0x00000000005c18a0 ** * glibc detected corrupted doubl转载 2016-04-11 15:12:37 · 1575 阅读 · 0 评论 -
C/C++中tm结构
在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm {int tm_sec; /* 秒 – 取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月转载 2016-04-18 09:36:51 · 5469 阅读 · 0 评论 -
struct
include stdio.hinclude stdlib.hinclude string.hint main() { struct student { long int num; int age; char *name; }st1={200,16,”zhangdddddddsan”}; str原创 2016-07-10 21:28:32 · 623 阅读 · 0 评论 -
C语言数据类型转换
/*– shortTofloat – **/ //shortToFloat(xiebo_tmp) // unsigned short xiebo_tmp[2];float shortToFloat(unsigned short *xiebo_short_tmp) { char pchar[4]; //小端模式 pchar[1] = (xiebo_shor原创 2016-07-10 21:29:27 · 459 阅读 · 0 评论 -
485ser.c
include include include include include include include include include include include include “netinet/in.h”include “sys/socket.h”include “sys/un.h”include “sqlite3.h”static sqlite3 *syssetdb = NULL;原创 2016-07-10 21:48:45 · 1063 阅读 · 0 评论 -
函数指针
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD); 定义了一个函数指针类型为 LPREGISTERSERVICEPROCESS,函数返回值为 DWORD,参数为两个 DWORD 类型。函数指针说起来比较麻烦,以带两个 int 参数的函数指针为例,一看就明白:#include <stdio.h>typedef int (*P转载 2016-07-21 20:47:13 · 533 阅读 · 0 评论 -
struct深入理解
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信控制、转载 2016-08-21 12:00:24 · 2593 阅读 · 0 评论 -
linux c常用字符串处理函数
一、puts名称:puts功能: 向显示器输出字符串。头文件:#include .h>函数原形:int puts(const char *s);参数: s 字符串 返回值: 成功返回输出的字符数,失败返回EOFput函数与printf函数在字符串输出中的区别:puts在输出字符串时,遇到'\0'会自动终止输出,并将'\0'转换为'\n'来输出。Printf在输转载 2016-03-31 09:40:59 · 447 阅读 · 0 评论 -
argc与**argv理解
//argv_test.c#include<stdio.h>int main(int argc,char **argv)//指向字符串的指针{ unsigned int a; unsigned short uchar[2]; uchar[0] = *argv[1]; uchar[1] = *argv[2]; a= atoi(argv[1]); printf("a = %d *argv[原创 2016-03-29 22:12:06 · 617 阅读 · 0 评论 -
C语言排序方法
1)“冒泡法1” 其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。 [cpp] view plain copyvoid bubble(int *a,int n) { int i,j,temp; for(i=0;i<n-1;i++)转载 2016-03-15 21:29:09 · 513 阅读 · 0 评论 -
数据类型转换
public class TypeConvert { 02. /* 字符串转byte[] 03. 这个方法转换后的结果是会多一些 48字符进来的就是代表的是0不知道为什么,但是可以只是取出指定的字符串就行了 04. */ 05. public static byte[] hexStringToBytes(String hexString)转载 2015-06-25 11:46:46 · 294 阅读 · 0 评论 -
Modbus大小端
//小端模式for(i=0;i<31;i++) { float4char[1]=modbus_buf[k+9]; float4char[0]=modbus_buf[k+10]; float4char[3]=modbus_buf[k+11]; float4char[2]=modbus_buf[k+12]; f[i]=*((float *)flo原创 2015-06-05 19:58:15 · 6832 阅读 · 0 评论 -
float型数据解析
float数据在内存中的存储方法浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。 ±mantissa × 2exponent (注意,公式中的mantissa 和 exponent使用二进制表示) 底数部分 使用2进制数来表示此浮点数的实际值。 指转载 2015-07-02 09:17:15 · 3046 阅读 · 0 评论 -
modbus 485 10功能码报文及解析
modbus 485 10功能码解析:000108-Tx:01 10 02 58 00 0A 14 01 0E 00 B2 01 09 00 AF 01 09 00 AF 13 88 00 32 13 88 00 32 C3 65 01:设备地址 10:功能码 02 58 :寄存器首地址 00 0A :寄存器个数原创 2015-07-04 15:04:19 · 33115 阅读 · 5 评论 -
modbus TCP IP功能码及报文解析
000014-Tx:03 6D 00 00 00 06 01 03 00 00 00 0A Client request: 03 6D两个字节是主机发出的检验信息,从机只需将这两个字节的内容copy以后再放到response的报文相应位置。 00 00 两个字节表示tcp/ip的协议是modbus协议原创 2015-07-04 14:18:46 · 18251 阅读 · 1 评论 -
linux下TCP与RTU数据转发程序
linux下TCP与RTU数据转发程序#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include "modbus.h"enum { TCP, RTU};int main(int argc, char *argv[]){ i原创 2016-01-18 15:47:32 · 2264 阅读 · 0 评论 -
linux下多线程多串口数据转发程序
linux下多线程多串口数据转发程序#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <mal原创 2016-01-19 11:17:34 · 3842 阅读 · 1 评论 -
linux下实现服务器与客户端
#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <e原创 2016-01-19 11:36:03 · 698 阅读 · 0 评论 -
linux下多线程控制服务器与客户端
include”client_slave.h”void *modbus_server_client_thread() { char buf[BUFFER_SIZE]; int client_sockfd; int len; struct sockaddr_in address;// 服务器端网络地址结构体 int result; cli原创 2016-01-19 14:26:12 · 657 阅读 · 0 评论 -
linux下程序不断开发新进程
出现如此情况的原因是:在循环语句中使用了read_thread=fork();导致程序不断开发新的进程。原创 2016-01-20 11:13:20 · 357 阅读 · 0 评论 -
C语言开发需考虑的细节
(1)函数编写的时候是否借口类型一致 (2) if 是否可以跳出 (3)while、for是否会发生死循环 (4)宏的优先级是否有保证 (5)所有指针使用前是否可能合法 (6) 全局变量是否是多进程共同使用,是否加锁 (7) 嵌套锁是否按照顺序进行,会不会发生死锁 (8) 程序优化的时候是否对部分数据使用了volatile属性 (9) 相同功能的代码是否进行了封装 (10)代码静态转载 2016-11-14 22:24:39 · 534 阅读 · 0 评论