011_stdc_C语言
2021-01-19 06:15
                         标签:结束   实现   基础上   指针 数组   puts   字符串转换   mkdir   测试   文件的    回顾:  1 const 限定存储空间的只读             char *str =  "hello wolrd"       char pa[10]="hello";       gets(str)   -->fgets()   //              strcat    连接多个字符串         字符串转换练习       int atoi(char *str);   //将一串字符转换为int  itoa //将int 转字符串  char *p 指向一个字符串(字符指针)  2. 3. char **ppa   //字符串指针(字符串指针) //输入一个姓名 ,判读 该同学是否在上面的名单中    带参数的执行程序(命令)  mkdir ls  cd cp  argc argc 参数个数,也是字符串的个数 linux系统下 ---------------------  程序的编译过程  预处理         头文件  宏函数  条件编译        #ifdef WIN    //如果定义了符号WIN  编译下面的代码  #include  文件查找方式 [练习]      编译测试  gcc main.c  add.c  static 修饰函数时,限定该函数只能在 当前.c文件使用      static  修饰全局变量名   该变量限于在当前.c文件访问      extern  修饰函数名/变量名  具有外部链接属性    头文件 还可以包含头文件,用头文件卫士 避免(重复引用) 如:print.h头文件中 add.h投文件中 011_stdc_C语言 标签:结束   实现   基础上   指针 数组   puts   字符串转换   mkdir   测试   文件的    原文地址:https://www.cnblogs.com/tanzizheng/p/12909570.html
   int a[];  a=pa;
  2 字符串
      int float  string  一串字符+ \0 就是字符串
%s 格式化占位符  char *str 
      puts(str)   -->   输出字符串
printf("hello world\n");
      puts("hellow worold\n");
      字符串里面的操作函数
strcpy    字符串复制
strcmp    比较字符串的大小
strlen    字符个数
      strlen("好");
_______________
atof();  //"3.14"  --> 3.14
      1. 字符指针 数组
char *pa[5]  //指向多个字符串
         char a[]  //一个字符串
         char a[5][10]  //5个字符串,每个字符串9字符char a[5][10] ={"关羽","张飞","刘备","赵云","小乔"};
#include 
第一种
   int main();
第二种
   int  main(int argc,char*argv[]);
   argv    argv 记录所有字符串的内容#include 
构建大型项目
    预处理--> 编译--> 汇编--> 链接 -->可执行文件
     main.c->main.i--> main.s  main.o  printf.o  a.outgcc -E main.c -o main.i  得到预处理后的文件main.i
gcc -S main.i            得到main.s 文件,汇编源文件
gcc -c main.s            得到main.o 文件
gcc main.o               得到a.out 可执行文件
        执行预处理语句, 以#开始的语句就是预处理语句
        #include    将后面的文件 放到当前的.c 文件中        宏
        #define
                   宏变量
         #define  PI  3.14
         s = PI * r * r;
宏是暂时代替变量,预处理时把变量替换成数值
#include 
       #if        如果#if 后的常数 非0  编译语句参与编译
       #else      如果#if 后的常数 为0  编译语句参与编译
       #endif     条件编译#if结束
       #define WIN    //条件定义符号  WIN
       #ifndef WIN    //如果没有定义了符号WIN  编译下面的代码#define WIN 
#undef WIN
int max(int a,int b)
{
#ifdef  WIN    //#ifndef
    if(a>b)
        return a;
    else
        return b;
#else
   
    return a>b?a:b;
#endif
}
       内置宏定义
       __FILE__      当前.C 文件名
       __LINE__      文件的行号
       __DATE__      文件的编译日期
       __TIME__      文件的编译时间
#include 
//printf("使用的C编译器吗 %d\n",__STDC__);    getchar();
    return 0;
}

        系统目录    /usr/include/
     ""    当前目录+系统目录
     编写add.c 文件 在该文件中 定义一个 int add(int a,int b)
     编写add.h 文件 在该文件中声明 add 函数的原型
     编写 main.c  在main函数中 
                 #include add.h
                 调用add函数实现两个数的和,
             static 修饰的函数名 在不同.c 文件中可以重名#目标:依赖的文件(目标顶格写,多个依赖文件用空格隔开)
#    命令  (前面是一个tab键)
[练习]
    为add 编写一个makefile 文件  并用make进行编译
add:main.o add.o print.o
    gcc main.o add.o print.o -o add
main.o:main.c add.h print.h
    gcc -c main.c
add.o:add.c add.h
    gcc -c add.c
print.o:print.c print.h
    gcc -c print.c
上一篇:数组中重复的数字python