易截截图软件、单文件、免安装、纯绿色、仅160KB

c语言基础(是时候补补c的基础了)

看数据结构裢栈的时候写了这么一段代码
#include<stdio.h>
#include<stdlib.h>
struct linkstack
{
int data;
struct linkstack *next;
};
int initstack(linkstack * S)
{
S = (linkstack *)malloc(sizeof(linkstack));
if(S == NULL) return 0;
S->next = NULL;
return 1;
}
int main(int argc,char **argv)
{
linkstack S;
if(initstack(&S))
printf("initstack success!!!\n");
return 0;
}
结果编译后就出现了这些错误
@-laptop:~/makeprog/stack$ gcc -g -o linkstack main.c
main.c:11: error: expected ‘)’ before ‘*’ token
main.c: In function ‘main’:
main.c:22: error: ‘linkstack’ undeclared (first use in this function)
main.c:22: error: (Each undeclared identifier is reported only once
main.c:22: error: for each function it appears in.)
main.c:22: error: expected ‘;’ before ‘S’
main.c:23: error: ‘S’ undeclared (first use in this function)
想了一下估计是这个结构体定义的问题,就改成这样
typedef struct node
{
int data;
struct linkstack *next;
}linkstack;
编译通过
然后找一下原因
第一种方式定义了一个全局
的结构体,然后在main()函数中用它来定义一个变量,所以不可以。第二种方式用了typedef,查查它的用法
               typedef
为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct
等)。
  在编程中使用typedef
目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。
但是还是不能分析出来到底什么原因,问问群里的朋友


相关文档:

C compiler cannot create executables的解决方法

搞了几天的问题。编译一个文件时,老是出下面这个错.
checking for C compiler default output file name… configure: error: C compiler cannot create executables
没法子,找高人帮我处理,哈哈….记录下来.因为64位的机器,默认对CFLAGS的这是进行了设置,所以使用下面的命令清空他就行了,这样软件就不会报 ......

C与C++的区别

1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。
2. C++/CL ......

不用临时变量交换两个数的值(C实现)

当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换。那么能不能不用临时变量而交换两个数的值呢?可以的!C语言提供的异或运算就可以实现这样的操作。
 
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, ......

纯C实现c++类

//#include "stdafx.h"
/*
描述:纯c模拟类,纯c编写c++类,纯c实现c++类的简单范例,结构模拟类,struct 编写class.
c编写类是实现纯c编写com组件的基础。
*/
#include <stdio.h>
typedef struct _Vtbl
{
    void (*AddRef)(struct CObject* obj,int);//所有的函数的第一个参数类似class的隐匿的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号