C语言demo样例


#include <stdio.h>
 main() {
  printf("hello world\n");
}

有参数构造: 

# include <stdio.h>
int main(void)
{   
    int Max(int x, int y);  //对Max函数的声明, x、y称为形参
    int a = 1, b = 2;
    printf("max = %d\n", Max(a, b));  //a、b称为实参
    return 0;
}
//定义Max函数
int Max(int x, int y)
{
    int z;  //函数体中的声明部分
    if (x > y)  //下面是语句部分
    {
        z = x;
    }
    else
    {
        z = y;
    }
    return (z);  //返回z的值给主调函数使用
}

main带参数的函数


int main(int argc,char *argv[],char *envp[])
{
	int i = 0;
	for (i = 0; i < argc; i++)
	{
		printf("%s\n", argv[i]);
	}
	system("pause");
	return 0;
}

main函数的三个参数:
第一个参数  argc ,用于存放命令行参数的个数。
第二个参数  argv,是个字符指针的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数。
第三个参数  envp ,也是一个字符指针的数组,这个数组的每一个元素是指向一个环境变量的字符指针。
 

生成so文件

第一步:
    将文件Hello.c编译成一个动态库:libHello.so,执行命令如下:

        $ gcc Hello.c -fPIC -shared -o libHello.so

    -shared: 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接,相当于一个可执行文件;

    -fPIC:PIC指Position Independent Code,表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的,所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。

 

错误:只允许在 C99 模式下使用‘for’循环初始化声明 用gcc编译出现

c99的模式允许了

你的c编译器不是c99标准

for(int i=0;;)

所有你应该这样改

int i;

for(i=0;;);

发布了223 篇原创文章 · 获赞 145 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/zzhuan_1/article/details/98873576