C/C++中结构体(struct)知识点强化(二)
C/C++中结构体(struct)知识点强化(二)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
首先,我们写这个程序,要考虑到由于是一个链表结构,我们不可能知道它的大小到底是多大,这个问题我们可以用动态开辟堆内存来解决,因为堆内存在程序结束前始终是有效的,不受函数栈空间生命期的限制,但要注意的是我们必须有一个指针变量来存储这一链状结构的进入地址,而在函数内部来建立这一指针变量显然是不合适的,因为函数一旦退出,这个指针变量也随之失效,所以我们在程序的开始声明了一个全局指针变量。
test *head;//创建一个全局的引导进入链表的指针
好解决了这两个问题,我们接下去思考
有输入就必然有输出,由于输出函数和输入函数是相对独立的,为了不断测试程序的正确性好调试我们先写好输出函数和main函数捏的调用,创建函数我们先约定好名为create。
我们先写出如下的代码:
#include <iostream>
using namespace std;
struct test
{
char name[10];
float socre;
test *next;
};
test *head;//创建一个全局的引导进入链表的指针
test *create()
{
return head;//返回链首指针
}
void showl(test *head)
{
cout<<"链首指针:"<<head<<endl;
while(head)//以内存指向为null为条件循环显示先前输入的内容
{
cout<<head->name<<"|"<<head->socre<<endl;
head=head->next;
}
}
void main()
{
showl(create());
cin.get();
cin.get();
}
程序写到这里,基本形态已经出来,输入
相关文档:
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
FILE *fp, *fp2;
char buf[1024*300];
fp = fopen("in.txt", "rb");
fp2 = fopen("out.txt", "wb+");
fseek(fp, 0, SEEK_END);
int iLen ......
到了main.c,其实main.c中的大部分的内容是调用函数来实现初始化的工作,但是还是将它看完了。下面就是代码了。主要参考的是linux内核完全注释,在一些不太明白的地方,参考网上的介绍。废话少说。还有很长的路啊。努力啊O(∩_∩)O~。
/*
* main.c功能描述。
*/
//main.c程序的主要功能是利用setup.s ......
作者:刘洪涛,华清远见嵌入式学院讲师。
四、在内核里写i2c设备驱动的两种方式
前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapter方式(LEGAC ......
一. 首先做一个简单的so文件:
/**
* hello.c
* To compile, use following commands:
* gcc -O -c -fPIC -o hello.o hello.c
* gcc -shared ......
前两天去了家游戏公司面试c/c++,题目做的很差,回来查查才发现题目大部分来自这篇文章《高质量C++/C编程指南》,有空得好好看看。
《高质量C++/C编程指南》
http://man.chinaunix.net/develop/c&c++/c/c.htm#_Toc520633987 ......