`

C的例子

 
阅读更多

 

一个C的例子

#include <stdlib.h>  
#include <stdio.h>
#include <string.h> 

//普通的search函数
int search(int * arr, size_t size, int target) {
	for(int i=0;i<size;i++) {
		if(arr[i] == target) {
			return i;	
		}
	}
	return -1;
}

//通用的search函数
int search_template(void* arr, size_t size, void* target, size_t element_size,
int(*func_cmp)(void*,void*) ) {
    for(int i=0;i<size;i++) {
		if( func_cmp((unsigned char*)arr + element_size * i, target) == 0 ) {
			return i;
		}
	}
	return -1;
}

//回调函数,专门用于比较int类型
int int_cmp(int *x, int* y) {
    return *x - *y;	
}

//typdef [内容] [别名],这里定义的别名就是 Book
typedef struct Book_str {
	char* name;
	char* info;
} Book;


//回调函数
int(*cmp)(void*,void*) 就是要调用的函数
void xx(void* a1, void* a2, int(*cmp)(void*,void*)) {
    int x = cmp(a1,a2);	
	printf("xx= %d\n",x);
}

int book_cmp(Book* b1, Book* b2) {
	int n= strcmp(b1->name, b2->name);
	if(n != 0) {
		return n;
	}
	return strcmp(b1->info,b2->info);
	
}

int main() {
    int arr[] = {5,6,1,4,6,11,34,101};
	//int result = search(arr,8,34);
	int target = 34;
	int* p = &target;
	int result= search_template(arr,8,p, 4, int_cmp);
	
	//printf( "%d", sizeof(int));
	printf("result=%d\n",result);
	
	
	Book *b1 = (Book *)malloc(sizeof(Book));
	b1->name = (char *)malloc(sizeof(char) *10);
	b1->name="123";
	b1->info = (char*)malloc(sizeof(char)*10);
	b1->info="123";
	
	Book *b2 = (Book *)malloc(sizeof(Book));
	b2->name = (char *)malloc(sizeof(char) *10);
	b2->name="abc";
	b2->info = (char*)malloc(sizeof(char)*10);
	b2->info="abc";
	
	xx(b1,b2,book_cmp);
	
	free(b1);
	free(b2);
	b1 = (void*)0;
	b2 = (void*)0;
	
}

 

分享到:
评论

相关推荐

    一百个c语言例子。特别在算法方面~是很不错的c语言例子

    这些"一百个c语言例子"的压缩包提供了丰富的学习资源,特别强调了算法的实践应用,对于初学者和进阶者来说都是宝贵的参考资料。 首先,我们来看一下标签“c语言”。C语言以其简洁、高效和灵活性著称,它是许多现代...

    example-source-code.zip_c语言 例子_c语言例子

    "C语言例子"表明这个集合包含了各种各样的C编程示例,旨在帮助新接触C语言的用户理解其基本语法和常用编程概念。 【描述】中提到,这个压缩包提供了超过50个C语言的实例,对于学习者来说,这是一个非常宝贵的资源。...

    C.rar_c语言 例子

    这个"C.rar_c语言例子"压缩包提供了一百个C语言编程的实例,旨在帮助学习者深入理解C语言的核心概念和编程技巧。 在C语言的学习过程中,实践是至关重要的。每个例子都是一个精心设计的练习,涵盖了从基础语法到高级...

    字符串处理的c语言例子

    本文将详细解析标题“字符串处理的C语言例子”所涉及的知识点,帮助初学者深入理解C语言中的字符串操作。 首先,我们要知道在C语言中,字符串是由字符组成的序列,通常以空字符'\0'作为结束标志。C语言并没有内置的...

    220个C语言例子.zip

    本资源“220个C语言例子.zip”提供了一套丰富的实例,旨在帮助学习者深入理解和掌握C语言的精髓。每个实例都代表了C语言的一个特定概念或技巧,通过实际操作,学习者可以更好地消化理论知识并提升编程能力。 C语言...

    单片机c语言例子集合

    "单片机C语言例子集合"这个压缩包文件正是为了帮助初学者更好地理解和掌握单片机编程而设计的。 C语言是面向过程的编程语言,它的语法结构清晰,易于理解。在单片机编程中,C语言允许程序员直接操作硬件资源,如...

    几个C语言例子打包感兴趣就下载

    标题中的“几个C语言例子打包感兴趣就下载”表明这是一个包含多个C语言编程示例的压缩文件,适合初学者或有经验的程序员参考学习。描述中提到的“c语言例子,感谢兴趣,挣点分。有用就下载,拥有一个万年历”意味着...

    C例子:深度优先遍历

    该程序是我写的博客“一起talk C栗子吧(第四十四回:C语言实例--深度优先遍历一)”的配套程序,共享给大家使用

    LT8900收发c语言例子

    LT8900收发c语言例子,LT8900是一款由ldctek公司独立开发低成本,高集成度的2.4GHZ的无线收发芯片,片上集成发射机,接收机,频率综合器,GFSK调制解调器。发射机支持功率可调,接收机采用数字扩展通信机制,在复杂...

    MSP430F5438 C语言例子 ti 的Demo 很全

    C语言例子中可能包含如下关键知识点: 1. **初始化设置**:包括时钟配置、中断向量设置、全局变量初始化等,这些都是每个程序开始运行前必不可少的步骤。 2. **外设接口**:如GPIO(通用输入/输出)、SPI(串行...

    c语言例子练习

    这个名为“C语言例子练习”的压缩包文件显然是为了帮助初学者深入理解和掌握C语言的核心概念与技术。通过一系列的实例,我们可以系统地学习C语言的各个知识点。 首先,C语言的基础包括变量、数据类型、运算符和...

    基于51单片机的单片机教程,一节汇编例子和一节C语言例子,从应用到原理,先使用,再了解原理

    基于51单片机的单片机教程,一节汇编例子和一节C语言例子,从应用到原理,先使用,再了解原理. 本教程不仅教51单片机的工作原理使用教程,还教C语言,汇编语言,以及少许的模拟电路,和数字电路。 除了这些核心...

    C-example.rar_C语言example_c语言例子_visual c

    C语言例程,100个小例子,C语言初学,简单例子

    DSP 77个C语言例子程序 包括FFT,FIR IIR等的DSP实现

    本文将深入探讨标题和描述中提到的77个C语言例子程序,它们涵盖了快速傅里叶变换(FFT)、有限脉冲响应滤波器(FIR)和无限脉冲响应滤波器(IIR)等核心DSP算法的实现。 **快速傅里叶变换(FFT)** FFT是离散傅里叶...

    适配器模式-c语言例子(未完成)

    适配器模式-c语言例子(未完成)

    C程序设计 C语言 经典C C语言例子

    刚搜索到的,好不容易下载的,给大家共享,是很不错的C语言方面的基础学习!

    C语言例子1

    C语言例子1

    C例子:最短路径(floyd算法)

    该程序是我写的博客“一起talk C栗子吧(第五十五回:C语言实例--图的最短路径三)”的配套程序,共享给大家使用

    MSP430 C例子集合

    "MSP430 C例子集合"是一个非常宝贵的资源,包含了针对MSP430微控制器的官方C语言编程示例,这些示例涵盖了多个核心功能模块,如GPIO(通用输入/输出)、UART(通用异步接收发送器)、SPI(串行外围接口)、I2C(集成...

    C语言的经典例子 经典 经典

    本文将围绕“C语言的经典例子”这一主题,深入探讨C语言的关键概念,通过分析压缩包中的资源,揭示其在实际编程中的应用。 首先,"C语言程序设计案例精编.chm"很可能是一本电子书或教程,它详细讲解了C语言的各个...

Global site tag (gtag.js) - Google Analytics