![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 58
Ts势
这个作者很懒,什么都没留下…
展开
-
【C语言_End】【coredump】【gcc】.../后续更新地方->知乎
记录(2023-06-17):好久没发文章了,之前就更换文章更新的地方了。可能不再在CSDN上发文章。core#内存只读->在malloc分配内存时SIGSEGV。gdb#简单的线程查看脚本、持续运行到segFault。gcc#追踪(trace)程序任意2个位置的函数经历。原创 2023-06-17 21:12:47 · 180 阅读 · 0 评论 -
C语言#bug#双向链表尾部插入
如图:原创 2022-12-02 01:00:29 · 701 阅读 · 0 评论 -
C语言#Linux-- C语言执行系统调用(system call)的具体流程
C语言#Linux-- C语言执行系统调用(system call)的具体流程# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题原创 2022-10-15 20:19:15 · 1193 阅读 · 0 评论 -
C语言#Linux-- 计算结构体成员偏移和成员反向计算结构体地址(container_of)
C语言-- 计算结构体成员偏移和成员反向计算结构体地址(container_of)原创 2022-09-25 19:22:55 · 724 阅读 · 0 评论 -
C语言-- 定义接口(Interface),实现接口,使用接口
【代码】C语言-- 定义接口(Interface),实现接口,使用接口。原创 2022-09-25 15:25:19 · 4257 阅读 · 0 评论 -
C语言 --二维数组的内存分布图(TODO)
参原创 2022-09-25 14:46:50 · 1021 阅读 · 0 评论 -
C语言 --- switch语句的原理(goto版本)
阅读之前:本文copy自 《Computer Systems A Programmer’s Perspective》 ,第三版。的 3.6.8 节 switch语句。如果汇编代码部分看不懂,需要把前面的部分全部读懂。C语言的switch的代码:void switch_eg(long x, long n, long *dest){ long val = x; switch (n) { case 100: val *= 13; bre翻译 2021-12-23 12:57:14 · 698 阅读 · 0 评论 -
C语言 -- 将枚举(enum)变量里的值同时作为字符串(string)和变量标识符(identifier)
一、注意事项1.由于C语言里定义枚举变量时,如这样enum var_enum {a ,b ,c}则使用的时候不能直接用 var_enum xx; 而是要enum var_enum xx;所以下面的代码和引用文章的代码有一点差别。2.宏定义里#号将记号转化为字符串。详细可参考:CSDN:#号的作用3.宏定义里##号表示把两个宏参数贴合在一起.详细可参考:CSDN:#号和##号的作用二、代码(1/2)main.c#include <stdio.h>#include <st翻译 2021-01-04 20:50:52 · 5472 阅读 · 1 评论 -
C语言---一些特殊的用法(函数调度表、变量附加属性)
记录一些第一次见到感到奇怪(少见多怪)的C语句。编译器GNU gcc。一、函数调度表原理:定义特定格式的函数指针,再定义函数指针数组。然后把一个个函数指针(即函数名、函数地址),然后就可以像操控数组一样操控一堆函数了。#include <stdio.h>#include <stdlib.h>#include <string.h>#define pint(t) printf("the func is:%d\n",t);void print1(int);原创 2020-12-25 23:34:39 · 4656 阅读 · 1 评论 -
C语言-函数指针void(*)(void),通用函数指针void(*)()
在阅读代码的时候看到有一段代码,令人有点懵。static void __near VECTOR_TABLE_04H(void){((void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x04 *2)))();}看上去像是一个函数,调整一下位置,括号太多了。static void __near VECTOR_TABLE_04H(void){ ( ( void(*)(void) ) (*(__far unsigned long *)(原创 2020-10-16 13:02:21 · 8615 阅读 · 3 评论 -
C语言-实现数学排列组合里的排列算法
本文将编写一个函数实现数学排列的功能,采用的办法是递归。具体功能如图所示:一、函数的讲解1.1 函数的原型函数的原型:int** Permutation(int* iarr,int size);将数组的首地址和数组的大小传递进去,函数将返回一个二维数组的地址,这个二维数组包含n!个一维数组(n即是size),而每一个一维数组又包含size个元素,二维数组的大小为n! * n1.2 递归的大概思路(如图所示)假设要数组的大小(size)为4,则要返回一个4!* 4大小的二维指针。二、程序原创 2020-08-20 21:11:55 · 5410 阅读 · 1 评论 -
C语言 输入一行字母转化为对应的序号
本文的程序实现是通过scanf函数将输入存放在char类型的数组里面,再通过特定的代码实现转变。#include <stdio.h>void letter_to_number(int* number ){ char strs[6]; scanf("%s",&strs); printf("input:%s\n",strs); for(int i=0;i<6;i++) { if((strs[i]<='z' &原创 2020-08-13 22:49:54 · 3119 阅读 · 0 评论