zoukankan      html  css  js  c++  java
  • C语言程序的组成

    c程序的组成

    由一个或多个.c.h文件组成

    *.c c源代码文件

    *.h :c头文件

    .cc源代码文件)组成

    1)预处理命令 :以'#'开头的行

    1)文件包含命令:#include 把后面的那个文件的内容在此处展开

    #include  <stdio.h>

    or

    #include "stdio.h"

    两种都是文件包含的命令形式,都是把后面的那个文件的内容在此处展开

    区别:

    <> 和 “” 区别仅仅只在于文件搜索的默认路径不一样

    <> :会在标准的头文件路径下去一个一个搜索  /usr/include

    "" :会在当前工程下去找,如果没找到,在到标准的头文件路径下去搜索

    (2)宏定义命令

    仅仅只是“替换”作用

    1)在一些程序中经常要用到可能需要频繁修改的常量

    2)给一些有意义的常量

    #define 宏名  要替换的常量或表达式

    #define LED_ON 1

    typedef的话是相当于新声明了一个类型。

    例如:typedef struct node{int data, struct node *next};

    这是单链表的典型定义,假如你需要在后面main函数或者其他函数使用的话,你可以使用struct node *p = malloc(sizeof(struct node))或者node *p = malloc(sizeof(*p))

    别人博客上是如此解释的:

    typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。

    具体区别在于:

    struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;

    若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;

    区别就在于使用时,是否可以省去struct这个关键字。

    练习:

    写一个宏,返回两个对象的最大值

    #define MAX(a,b)  (a)>(b)?(a):(b)  

    => MAX(3+5,6+7)

    XXX(a,b)  (a)/(b)

    eg:XXX(2+3,4+5)

    2+3/4+5

    int a = 5;

    MAX(a++,4);

    (a++) > (4) ? (a++) : (4)

    #define MAX(a,b)  ({

    typeof(a) _a = a;

    typeof(b) _b = b;

    (_a)>(_b)?(_a):(_b) ;

    }

    )

    3)条件编译:选择那些代码编译,哪些不编译

    int main()

    {

    ....

    printf();

    ....

    printf();

    }

    (1) #if 1/0

    YYYYY

    #else //可不要

    XXXXX

    #endif

    =====

    #define W 1

    #if W

    YYYYY

    #else //可不要

    XXXXX

    #endif

    ====

    #define W 1

    #ifdef W

    XXXXX

    #else

    YYYYY

    #endif

    (2)全局声明语句

    “声明”:c语言中声明,声明一个名称就是把一个标识符与某个C语言对象相关

    c语言对象:变量,函数,数组,类型

    =》变量声明

    函数声明

    数组声明

    类型声明

    3)代码部分

    C语言中的代码是以“函数”形式组织的。

    C语言中的指令必须要在函数内部

    c函数有两部分组成

    函数头

    函数体

    C语言函数体主要有两部分组成:

    局部声明

    c语句(指令)组成

    C语句:

    1.控制语句:完成一定的控制功能

    if/else

    for/while/do_while

    continue

    break

    switch

    goto

    return

    2.函数调用语句

    printf("fgeui");

    3.表达式语句

    由一个表达式+一个;构成的一个语句

    a = 4;

    4.空语句

    ;

    5.复合语句 :用一对{}括起来的语句

    {

    }

    .h文件组成

    一般由

    预处理命令

    声明部分

    组成

    #ifndef _SUM_H_

    #define _SUM_H_

    #endif

    =>防止头文件被重复包含

    c程序设计结构

    1.顺序

    2.选择

    3.循环

    指针常量:指向常量的指针

    不可以改变指向变量的内容,但是可以改变指向某个变量

    const int*p;

    int const *p;

    常量指针:不可以改变他指向哪个变量,但是改变已经指向的某变量的内容

    int * const p = &a;//必须要初始化,指向常量,不能改变

    const

    extern

    static

    char s[] = {'1','2'};

     END

  • 相关阅读:
    React中路由的基本使用
    React中props
    一款超级炫酷的编辑代码的插件 Power Mode
    React中使用styled-components的基础使用
    对ES6的一次小梳理
    动态规划法(七)鸡蛋掉落问题(二)
    动态规划法(六)鸡蛋掉落问题(一)(egg dropping problem)
    三对角线性方程组(tridiagonal systems of equations)的求解
    Sherman-Morrison公式及其应用
    动态规划法(四)0-1背包问题(0-1 Knapsack Problem)
  • 原文地址:https://www.cnblogs.com/qihuanye-229110/p/11147469.html
Copyright © 2011-2022 走看看