![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
南宫瑾
这个作者很懒,什么都没留下…
展开
-
C语言基础一
[code="java"]C语言程序中可以直接使用加减乘除(+,-,*,/)。;用来分隔不同的语句大括号用来对语句进行分组,一组中的语句还可以继续分组C语言程序中必须有函数,不同的函数用不同的名称区分。至少有一个叫main的函数,程序启动后立刻激活这个函数。函数被激活后对应大括号内部的语句从上到下顺序执行,所有语句结束则函数结束。叫做main的函数前面要写int。叫做main的...原创 2014-05-21 15:15:16 · 79 阅读 · 0 评论 -
密钥管理 之 数据库取
[code="java"]#include "../lib/slas_common.h"#include "../lib/log_defines.h"#include "../lib/slas_paths.h"#include "../lib/slas_defines.h"#include "../lib/slas_structs.h"#include &quo2014-08-08 15:57:46 · 181 阅读 · 0 评论 -
20个C语言中常用宏定义总结
[code="java"]20个C语言中常用宏定义总结2012-09-16 10:52:57分享:01: 防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif02: 重新定义一些类型防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char ...原创 2015-03-02 10:41:53 · 90 阅读 · 0 评论 -
双向链表 数字按降序排列
[code="java"]#include #include typedef struct Tag_Node{ struct Tag_Node *left; struct Tag_Node *right; int value;}TNode;TNode *root = NULL;void append(int value){ TNode *...2015-03-06 14:47:17 · 292 阅读 · 0 评论 -
C语言基础十
[code="java"]malloc函数用于从堆中分配连续多个字节,如果失败则返回NULL。为了使用这个函数需要包含头文件stdlib.h。free函数可以释放堆中分配的连续多个字节,需要首字节地址作为参数。calloc函数也可以从堆中分配连续多个字节,失败也返回NULL。这个函数保证把分配到的变量清0。realloc函数可以调整堆中变量的个数。可以使用关键字cons...2014-08-19 16:13:01 · 102 阅读 · 0 评论 -
C语言基础十一
[code="java"]指针数组是由多个同类型的指针变量构成的数组,声明方法如下int *values[3];指针数组和二级指针可以互相替换数组指针是一个指针变量,可以用来记录二维数组的名称,声明方法如下int (*p_values)[3];数组指针可以和二维数组互相替换数组指针加一时,一的单位是整个一维数组的大小FILE结构体用来表示文件系统中的一个文件...原创 2014-08-21 17:32:59 · 107 阅读 · 0 评论 -
一个字节中被置 1 的位的个数
[code="java"]第一种unsigned int TestAsOne0(char log){int i;unsigned int num=0, val;for(i=0; i> i; //移位val &= 0x01; //与1相与if(val)num++;}return num;}第二种unsigned int TestAsOn...2014-08-22 11:48:17 · 193 阅读 · 0 评论 -
uc 获取文件大小
[code="java"]#include #include // 获取文件大小// 成功返回文件大小,失败返回-1long fsize (const char* path) { FILE* fp = fopen (path, "r"); if (! fp) return -1; fseek (fp, 0, SEEK_END); long si...2014-08-26 11:51:49 · 97 阅读 · 0 评论 -
error strerror 函数 用法
[code="java"]#include #include #include int main (void) { FILE* fp = fopen ("none", "r"); if (! fp) { printf ("fopen: %d\n", errno); printf ("fopen: %s\n", strerror (errno)); pr...2014-08-26 16:15:41 · 207 阅读 · 0 评论 -
指针释放之结构体
[code="java"]typedef struct{ uint len; uchar *s;}nint;typedef struct{ xtime_t log_time[16]; uchar log_uchar[16]; ushort log_ushort[16]; uint log_uint[16]; uint log_...2014-09-03 18:10:44 · 725 阅读 · 0 评论 -
使用execvp 来调用程序传参
[code="java"]注意: execvp 函数会根据环境变量来查找程序程序:argc.c 1 #include 2 3 4 int main(int argc, char *argv[]){ 5 while(--argc > 0){ 6 printf("%s\n", *(++argv)); 7 }...2015-07-08 14:52:43 · 1170 阅读 · 0 评论 -
assert()函数用法总结
[code="java"] assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序...原创 2014-10-16 09:53:00 · 145 阅读 · 0 评论 -
C语言基础九
在声明全局变量的时候前面加关键字extern可以让当前源文件使用其他源文件中声明的全局变量使用static关键字声明的全局变量叫做静态全局变量,它的作用域被限制在声明它的那个源文件内部。static也可以用来声明函数,效果和静态全局变量一样Makefile用来完成程序编译过程的管理,make工具使用Makefile文件完成管理工作。结构体可以用来把多个不同类型的变量合并...原创 2014-08-06 16:17:52 · 84 阅读 · 0 评论 -
取当地时间 localtime
[code="java"] time_t t; struct tm *tm; t = time(NULL); tm = localtime(&t); int year = tm-> tm_year + 1900; int month = tm-> tm_mon + 1; int day = tm-> tm_mday; int hour = tm-...2014-08-01 15:15:22 · 122 阅读 · 0 评论 -
C语言基础二
[code="java"][size=xx-small]scanf函数可以把用户在键盘上输入的数据保存到变量中。需要在文件开始加上如下一条语句#include scanf函数中也可以使用各种占位符scanf函数中必须使用变量的地址而不能是变量的名称字符类型数据是C语言中最简单的一组数据,用char表示。一共包含256个不同的字符,例如'a','0'和'+'。char类型对应...原创 2014-05-21 15:16:57 · 66 阅读 · 0 评论 -
C语言基础三
[code="java"]逻辑操作符(==, !=, >, =, 6); printf("3 < 6是%d\n", 3 < 6); printf("3 >= 6是%d\n", 3 >= 6); printf("3 2是0x%x\n", 0x24 >> 2); printf("0xffffffc9 > 2是0x%x\n"原创 2014-05-21 15:19:50 · 81 阅读 · 0 评论 -
调试程序函数
推荐使用这个:static void trace(const char *format, ...){ FILE *fp = NULL; va_list args; fp = fopen("/var/tmp/whj.txt", "a+"); if (fp){ va_start(args, format); vfprintf(fp, format, args);...原创 2014-07-11 15:16:33 · 112 阅读 · 0 评论 -
C语言基础四
[code="java"]循环语句可以让一段语句反复执行多次。for语句是一种循环语句,使用方法如下int xun_huan = 0;for (xun_huan = 0; xun_huan < 次数; xun_huan++) { 反复执行的语句}上面的语句可以让大括号内部的代码执行指定的次数有如下一段for语句for (1;2;3) { 4}...2014-07-14 09:59:05 · 78 阅读 · 0 评论 -
C语言基础五
[code="java"]多个一维数组可以合并成一个二维数组,这些一维数组中变量类型必须一样并且变量个数也必须一样。二维数组声明如下int shu_zu[2][3];其中2表示由2个一维数组构成,3表示每个一维数组中有三个变量。函数可以用来表示一段数据处理过程,函数声明方法如下int jia(int shu_zi, int shu_zi1) { 处理语句}ji...2014-07-14 10:01:52 · 69 阅读 · 0 评论 -
open和fopen的区别:
[code="java"]open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作...原创 2014-12-30 11:19:22 · 96 阅读 · 0 评论 -
UC 文件系统
[code="java"]#include #include #define HEX2BCD(x) (((x) % 10) + ((((x) / 10) % 10) 20H*/#define UINT8 unsigned char/* 功能:获取BCD时间 out: [out] 保存获取到的BCD时间,格式为:秒分时日月年(各占一字节,...原创 2014-12-30 13:16:05 · 1157 阅读 · 0 评论 -
lseek
[code="java"]1. 每个打开的文件都有一个与其相关的“文件位置”。2. 文件位置通常是一个非负整数,unix_c_03.txt用以度量从文件头开始计算的字节数。3. 读写操作都从当前文件位置开始,并根据所读写的字节数,增加文件位置。4. 打开一个文件时,除非指定了O_APPEND,否则文件位置一律被设为0。5. lseek函数仅将...原创 2015-01-05 09:41:05 · 123 阅读 · 0 评论 -
C语言基础六
[code="java"]函数的形式参数如果是数组,函数被激活的时候不会创建新的数组而是会使用实际参数所指定的数组。如果一个函数执行过程中会得到多个新数据,可以通过形式参数中的数组把所有这些新数据报告给调用函数。如果函数使用数组作为形式参数,则必须用另外一个参数表示数组中的变量个数。递归函数在执行过程中还会再次调用自己使用循环编写程序处理数字序列的方法叫做递推作用域...原创 2014-07-14 15:22:30 · 84 阅读 · 0 评论 -
C语言基础七
[code="java"]指针变量用来记录地址数据,可以通过指针变量找到其他变量。指针变量声明方法如下int *p_value = NULL, *p_value1 = NULL;其中p_value和p_value1是指针变量名称,*表示变量是指针类型,int表示通过这两个指针变量可以找到整数类型数据。NULL是空地址,所有不能使用的指针变量都应该记录空地址。指针变量占有...2014-07-14 17:24:52 · 78 阅读 · 0 评论 -
C语言基础八
[code="java"]#define是一条预处理指令,可以用来编写宏定义语句。宏定义语句可以用来给数字起名字。可以在编译时使用-D选项给一个名字指定对应的数字,例如gcc -DSIZE=6 02circle.宏是可以带参数的,宏的参数通常表示一个名称宏的参数直接参与计算,函数的参数要先制作出一个替身然后才参与计算。在编写带参数的宏时要在每个参数外边加一对小括号强制参...2014-07-22 18:33:17 · 73 阅读 · 0 评论 -
函数返回局部变量
[code="java"] 一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。...原创 2014-10-21 17:54:07 · 63 阅读 · 0 评论