
C
文章平均质量分 65
奔走在路上的小白
想要待在原地,只能努力奔跑
展开
-
Linux C API
Linux C APIreboot();#include <linux/reboot.h> /* Definition of LINUX_REBOOT_* constants /#include <sys/syscall.h> / Definition of SYS_* constants */#include <unistd.h>int syscall(SYS_reboot, int magic, int magic2, int cmd, void原创 2021-11-29 15:41:57 · 396 阅读 · 1 评论 -
C语言---Clean结构体部分成员
Clean结构体部分成员在C语言中,结构体是一个重要的数据结构,使用结构体可以表示一个对象的很多属性,并且结构体也是实现链表的重要数据结构,在使用结构体的成员之前对成员变量进行清空操作,是保证数据不会出错的好习惯,但是有时候结构体的成员里面已经存储了很多已经写入的参数,那么怎么能够避免,这些参数不会被勿清空呢?接下来就通过一个小例子,来看看其中一种方法进行清空操作:#include<stdio.h>#include <string.h>typedef int (*add)(原创 2020-12-11 15:09:14 · 980 阅读 · 0 评论 -
函数指针和函数指针数组
函数指针和指针函数数组定义函数指针定义函数数组函数指针数组各个成员执行的函数数字给函数指针数组初始化:访问和执行函数下面用一个简单的小例子感受一下:#include<stdio.h>#define COUNT 2int SimAdd(int iOne,int iTwo);int DoubAdd(int iOne,int iTwo);typedef int (*pCalAdd)(int a,int b);pCalAdd g_pFunc[COUNT]={SimAdd,Dou原创 2020-11-16 22:04:23 · 154 阅读 · 0 评论 -
字符串子串的删除
指针与字符串的操作请编写一个函数,删除一个字符串的一部分。函数的原型如下:int del_substr(char *str,char const *substr);函数首先应该判断substr是否出现在str中。如果它并未出现,函数就返回0;如果出现,函数应该把str中位于该子串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1.如果substr多次出现在str中,函数只删除第1次出现的子串。函数的第2个参数绝不会被修改。举个例子,假定str指向ABCDEFG,如果substr指向原创 2020-08-20 15:29:14 · 2413 阅读 · 0 评论 -
数组与指针
数组与指针我们先来看一个简单的小例子://test.cint mango[100]={1,2,3,4,5,6,7,8,9,0};//main.c#include<stdio.h>//extern int mango[];extern int *mango;int main(void){ printf("%d:%d\n",*mango,(*mango+3)); //运行结果会是什么? return 0;}然后编译运行看看执行结果是多少?结果是产生了,core原创 2020-08-04 17:54:47 · 139 阅读 · 0 评论 -
大端模式和小端模式
Big-endian and Little-endian概念大端模式(Big-endian): 高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。即正序排列,高尾端;小端模式(Little-endian):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。即逆序排列,低尾端;描述1)大端模式int a = 0x12345678;低地址 ------------------>高地址0x12 | 0x34 | 0x56 | 0x782) 小端模式int原创 2020-07-07 15:03:53 · 247 阅读 · 0 评论 -
纯纯的C语言实现经典小游戏----贪吃蛇
贪吃蛇#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#define W 50 //墙的宽度#define H 20 //墙的高度char g_Buf[H][W];int quit = 0;typedef struct _snake{ int number; int snake_x; int snake_y;}SNAKE;原创 2020-07-05 14:29:12 · 944 阅读 · 0 评论 -
关于const的恩怨情仇
关于关键字const的用法是一个老生常谈的面试题了,并且项目开发中也会用到,const结合指针更是一个有趣的话题#include<stdio.h>int main(void){ const char *ps1 = NULL; char *pc = "Hi xiaofang"; char buf[] = "helloworld"; pc = buf; char *c...原创 2019-09-28 20:33:29 · 100 阅读 · 0 评论 -
字符串长度strlen
继续回忆关于库函数的部分实现,下面是strlen函数的实现,里面也有一个小问题,不知道有没有意义…#include<stdio.h>int mystrlen(const char *pSrc){ int nval = 0; if(NULL == pSrc) { printf("init pSrc pointer is NULL,please check it!\n"...原创 2019-09-28 11:52:20 · 389 阅读 · 0 评论 -
回忆一下库函数strcat
抽点时间回忆下库函数strcat的实现,也是回忆关于指针的操作,C语言的精髓所在指针,让人又爱又恨…哈哈#include<stdio.h>char *mystrcat(char *dest,const char *src){ char *pTemp; if((NULL == dest) || (NULL == src)) { printf("the address ...原创 2019-09-26 20:43:40 · 115 阅读 · 0 评论 -
回忆strcpy的点点滴滴
好久没有自己去写库函数的实现了,今天来动手写写,先写简单的,能够实现为目的,后续再查漏补缺。#include<stdio.h>#include<stdlib.h>char *mystrcpy(char *dest,char *src){ char *ptemp; if((NULL == dest) || (NULL == src)) { printf("...原创 2019-09-23 16:44:01 · 101 阅读 · 0 评论 -
关于结构体指针
关于结构体指针赋值和传值得问题在项目中遇到了几次,今天又遇到了就来总结一下,看来还是某些知识点没有学到位啊。看下面的例子 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 typedef struct data 5 { 6 int a; 7 int value; 8 char...原创 2019-09-03 14:26:20 · 466 阅读 · 0 评论 -
函数指针
在自己现在的项目中使用到了,大量的函数指针和回调函数,所以来记录一下关于这位仁兄的故事…函数指针:顾名思义,也就是函数的指针,是一个指针,指向一个函数。下面举一个例子:char ( fun)(char * pa, char * pp);这里的fun呢不是什么函数名,而是一个指针变量,它指向一个函数,这个函数有两个指针类型的参数,函数的返回值也是一个指针。在列举部分项目中使用的方式:vo...原创 2019-07-26 09:34:02 · 162 阅读 · 0 评论 -
堆,栈,静态区
对于内存我们可以简单的理解为分3个部分:堆,栈和静态区。有时大家常说的堆栈,就是栈,不是堆。堆的英文是:heap栈的英文是:stack,也翻译为堆栈下面简单唠唠这三位仁兄:堆:有malloc系列函数或者new操作符分配的内存。其生命周期由free或delete决定。在没有释放之前一直存在,直到程序结束。它的特点呢是使用灵活,空间较大,但容易出错。栈:保存局部变量。栈上的内容只在函数的...原创 2019-07-25 16:06:06 · 456 阅读 · 0 评论 -
C语言中宏定义的使用
在做项目的过程中发现了前辈使用的宏定义,对于刚接触的新手来说是一种学习的积累。比如下面://使用宏定义的方式封装一种log信息的输出#define TRACE(fmt,…) {if (copyDebug >= DBG_TRACE) PSPRINTF([CP:%s.%d]:"fmt,func,LINE,##VA_ARGS);}//通过封装成开关的方式决定模块中需要输出的重要log信...原创 2019-07-25 09:54:32 · 254 阅读 · 0 评论 -
C记录之开篇
先从32的关键字开始吧…auto , int ,double , long , char , float , short , signed , unsigned , struct , union , enum , staticswitch , case , default , break , register , const , volatile(说明变量在程序执行过程中可被隐含地改变), t...原创 2019-07-24 09:23:49 · 98 阅读 · 0 评论