3 陌上花开缓缓归以

尚未进行身份认证

等级
TA的排名 2w+

c语言之结构体数组数据传递

1,在项目开发过程中,数据之间的传递是必不可少的,当我们需要传递一个数据的时候,我们只需要定义一个变量就可以了,那么当我们需要传递一组数据且多次传递时我们需要怎么做呢,我们使用结构体数组可以实现,在这里我举例说明一下:#include<stdio.h>#include<string.h>typedef struct stu{ char poll; char...

2020-03-30 12:21:45

c语言浮点型数据和二进制(十六进制)数据之间的转换

1,在开发过程中,我们经常要用到浮点型数据,但是计算机中保存的数据是二进制数据,所有我们需要掌握二进制数据(16进制)转换位浮点型数据,我现在来举例说明:#include<stdio.h>int main(){ long int y = 0xfffffffffffffff7; int z = 0xffffffff; double * x = (double*)&amp...

2020-02-29 14:35:55

中华好诗词大学季第二季(一)

第一期背诗题:(没写的接下一句)韩愈《早春呈水部张十八员外》的天街小雨润如酥王祯白的《白鹿洞二首.其一》一寸光阴一寸金的上一句刘禹锡的《秋词》自古逢秋悲寂寥杜甫的《登岳阳楼》那一句写了动物李贺的《金铜仙人辞汉歌》衰兰送客咸阳道刘禹锡《浪淘沙九首.其一》九曲黄河万里沙许浑《咸阳城东楼》山雨欲来风满楼上一句白居易《赋得古原草送别》那一句写到了颜色王昌龄 《从军行...

2020-01-05 15:36:53

cpu过高定位方法

1,当我们在开发过程中疯狂的写寄存器时,cpu会疯狂上涨,那么我们怎么定位是哪个函数导致的cpu过高呢首先我们用top来看占用cpu情况:其次我们来看那个进程占cpu最高:top -H -p pid(这里就是542)...

2019-12-30 20:42:13

c语言论函数返回值的重要性

做驱动适配时,我们首先需要找驱动人找驱动接口,找到驱动接口后确认驱动的传入参数和返回值,特别是返回值,我们一定要做返回值判断,在做返回值判断时我们一定要加打印; 而我们在使用指针时一定要做判空处理。打印格式:正确返回时的格式:文件名:函数名:函数有用参数参数错误时的格式:文件名:函数名:return error拿到驱动接口我们首先可以用gdb的call来测试一下驱动接口是否可用,测试分...

2019-12-30 20:20:15

函数指针的项目中举例使用

我们在做驱动适配的时候,我们要有长远的眼光去做,先定大框架,简而言之先做一个通用的东西,而后再去做区分,我们有几种方法做适配:1,数据之间的适配:数据少的时候if else 数据多的时候 switch case2, 任务之间的适配: 使用函数指针,用0/1向量来做区分(重点)例如:我们如果要使用这些函数,就需要在初始化的时候注册他,不用的话就不用去注册它,如果共用一套代码就用...

2019-12-30 19:55:54

Linux 打印调试技巧

1,函数打印调用次数的控制在循环中打印次数的控制举例说明:#include<stdio.h>int g_print_num = 0;int main(){ while(1) { if(g_print_num++ < 10) { printf("g__print_num print\n"); } else { ...

2019-12-30 19:47:45

c语言 continue 和 break 的区别

1,Break 直接退出循环 continue 只跳这一个循环#include<stdio.h>int main(){ int i,j; for(i=0;i<5;i++) { if(i == 1) break; printf("break:i = %d\n",i); } for(j=0;j<5;j++) { if(j == 1) ...

2019-12-30 19:37:50

gdb call跟踪函数

1,在开发过程中我们需要传递各种数据,因此需要调用别人的接口,那么我们如何确我们调用到了别人的函数,调用别人函数的时候,我们怎么样判断获取的数据是否正确呢,除了前面博客中写到的加入全局变量后加打印,我们还可以使用最直接的方法用gdb中的call命令来实现调用,来判断我们读取的数据是否正确,现在我举一个我在项目中的调用实现过程:从上面的例子我们可以看出:使用call 设置数据和获取数据,获...

2019-12-09 21:04:58

c语言指针之间的类型使用

1,我们先来看看例子:#include<stdio.h>#include<stdlib.h>int main(){ char* p1 = NULL; short* p2 = NULL; int* p3 = NULL; char a = 1; short b = 2; int c = 3; p1 = &a; p2 = &b;...

2019-12-01 17:38:36

c语言指针面试

1,#include<stdio.h>#include<string.h>#include<stdlib.h>void GetMemory1(char* str,int num){ str = (char*)malloc(num*sizeof(char)); if(str == NULL) { printf("malloc memory...

2019-12-01 17:30:48

c 语言数组和指针传参对比

1,函数传参静态数据,指针的对比:#include<stdio.h>char* array_return(){ char array[] = "hello word"; printf("array = %p\n",array); return array;}char* static_array_return(){ static char static_arra...

2019-12-01 17:23:50

c用#define 定义函数MAX和swap的使用

1,用#define来实现找Max(x,y)和swap(x,y). 定义函数注意一定要加换行符\;#include<stdio.h>#define Max(x,y)({ \ typeof(x) _x = (x); \ typeof(y) _y = (y);\ (void)(&_x == &_y);\ _x > _y?_x:_y;\})#de...

2019-12-01 17:13:19

c 指针char*和char[]的对比说明

1,char*和char[]的对比,先举例#include<stdio.h>int main(){ char *str1 = "hello"; char *str2 = "hello"; const char *str3 = "word"; const char *str4 = "word"; printf("str1= %p,str2=%p\n",str1...

2019-12-01 16:48:46

char *a 与char a[] 的区别(一)

char *d = "hello word" 中的a是指向第一个字符‘a'的一个指针;char s[20] = "hello" 中数组名a也是执行数组第一个字符'h'的指针。现执行下列操作:strcat(d, s)。把字符串加到指针所指的字串上去,出现段错误,本质原因:*d="0123456789"存放在常量区,是无法修的。而数组是存放在栈中,是可以修改的。两者区别如下:读写能力:cha...

2019-12-01 16:28:26

c语言sizeof和strlen的使用对比区别

1,sizeof举例:#include<stdio.h>int main(){ char str[] = "hello word"; char str1[] = {'h','e','l','l','o'}; char *str2 = "hello word"; char str3[][20] = {"hello","word","nihao"}; //3 array...

2019-12-01 16:06:54

c语言面试数组(a+1)[5]的遍历

1,我们先来看看下面这个面试题:#include<stdio.h>int main(){ int a[10] = {1,2,3,4,2,9,8,4}; char p0; char p1; char p2; char p3; p0 = (a+0)[5]; p1 = (a+1)[5]; p...

2019-12-01 15:44:27

memset在unsigned char和unsigned int 使用区别

1,我们在数组初始化过程中常常遇到很多问题,比如我们将一组数组数据初始化为全部为同一数据时我们怎么初始化呢,用for循环还是memset呢#include<stdio.h>#include<string.h>typedef struct stu{ int num; int id; int freq; int bandwidth;}MES;//结构...

2019-11-25 23:28:59

sourceinsight 快捷键

在项目开发过程中,我们会经常用到sourceinsight,所以我们需要了解一下sourceinsight的快捷键,我把经常使用的简短总结如下,后续补充中。。。shift + pgup 向上选择shift +pgDn 向下选择ctrl + F4 关闭文件ctrl + a 选择全部ctrl +g 跳到选择行ctrl + '+/=' 跳到变量定义的地方/跳转到函数定义的地方ctr...

2019-11-17 14:04:44

c语言遇到问题总结(1/2,)

1,float接受返回值的时候为什么是0而不是自己想要的结果:float f = 1/2;printf("f=%f",f);我们需要改成float f =(float)1/2;或者我们经常用float f = 1.0/2;后面这种方法我们经常使用。 float f = 1.0/2; printf("%f",f);2,default不需要break;...

2019-11-10 15:33:08

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。