综合运用C语言指针强制转换和回调函数
在这个例子里,回调函数比较两个值。查找函数向比较函数传递两个指向需要进行比较的值的指针,并检查比较函数的返回值。例如:零表示相等的值,现在查找函
数就与类型无关,因为它本身并不执行实际的比较。确实,调用者必须编写必需的比较函数,但这样做是很容易的,因为调用者知道链表中所包含的值的类型。如果
使用几个分别包含不同类型值的链表,为每种类型编写一个比较函数就允许单个查找函数作用于所有类型的链表。
程序段01 是类型无关的查找函数的一种实现方法。
注意函数的第 3 个参数是一个函数指针。这个参数用一个完整的原型进行声明。同时注意虽然函数绝不会修改参数 node 所指向的任何节点,但
node 并未被声明为 const 。如果 node 被声明为
const,函数将不得不返回一个const结果,这将限制调用程序,它便无法修改查找函数所找到的节点。
/*
**程序 01 ——类型无关的链表查找函数
**在一个单链表中查找一个指定值的函数。它的参数是一个指向链表第 1 个节点的指针、一个指向我们需要 查找的值的指针和一个函数指针。
**它所指向的函数用于比较存储于链表中的类型的值。
*/
#include <stdio.h>
#include "node.h"
Node *
search_list( Node *node, void const *value, int (*compare)( void const *, void const *) )
{
while (node!=NULL){
if(compare(&
相关文档:
原文
Python和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢;C语言则正好相反,其执行速度快,但开发效率低。为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块。本文介绍如何利用C语言来扩展Python的功 ......
http://blog.csdn.net/noah1987/archive/2008/10/21/3118934.aspx
本程序可以读取.wav文件,然后进行播放。
使用前,请确认您是否安装音频驱动。
确认方法:cat /etc/sndstat,如果显示无此设备,则没有安装驱动。
安装驱动很简单,到oss.com上下载音频驱动,然后按照网上的教程进行就可以了。
源代码如下:
#include ......
由于C++编译器需要支持函数的重载,会改变函数的名称,与标准C中函数名称不同。然而dll的导出函数通常是标准C定义的,让标准C编写的dll函数定义在C和C++编译器下都能编译通过,通常会使用以下的格式:(这个格式在很多成熟的代码中很常见)
#ifdef __cplusplus extern "C"
{
#endif
// ......
第一次仔细地看这种代码,都是从网上复制做了略微改动后的产物。代码如下:
#include "reg52.h"
unsigned char Count;
sbit Xiang=P1^2 ; //蜂鸣器响
unsigned char code SONG[] ={
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x2 ......
一个简单的小程序, 原题目见<C语言程序设计-现代方法>第八章练习13.
由于自己只看到第八章, 所以, 不敢贸然使用函数等其他内容, 高手请放声大笑.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define ROWS 10
#define COLS 10
/**
* @author: selfimpr
* @blog: http:// ......