zoukankan      html  css  js  c++  java
  • 常量的三种定义方式和static在c语言中的三种修饰

    c语言的常量在执行期间为固定值,在定义后无法被修改
    常量可以是任何的数据基本类型,可以为整形,浮点常量,字符和字符串常量
    1,使用const关键字
    2, 使用宏定义
    3,使用枚举常量

    枚举:

     1 #include<stdio.h>
     2 int main(){
     3     enum sex{
     4         male,
     5         female,
     6         unknown,
     7     };
     8     printf("%d
    %d
    %d
    ", male, female, unknown);
     9     return 0;
    10 }

    宏定义:

    1 #define i 5

    const关键字修饰的常量不可被再修改,例如:

    1 const int i=6;

    在vs同一个工程下建立两个.c格式的文件:

    在第一个.c文件下写:

    1 static int g_val = 100;

    在第二个.c文件下写上

     1 #include <stdio.h>
     2 #include<stdlib.h>
     3  extern int g_val;
     4 
     5 int main(){
     6      /*int g_val = 30;*/
     7     
     8     printf("%d
    ", g_val);
     9     system("pause");
    10     return 0;
    11 }

    运行结果如下:

    当去掉第一个程序的static时候:

    1 int g_val = 100;

    再次运行第二个程序显示编译成功。

    这是因为:

     static作用于同一个工程中2.c文件内的int g_val;使之从全局变量变为了局部变量,从而在1.c文件中编译器无法打印出g_val

    另外在同一个工程中的不同的.c文件中如果需要引用另一个.c中的变量,需要使用extern在进入主要函数之前
    c语言static的作用:
    1,修饰局部变量,改变变量的生命周期,变成了整个程序;
    2,修饰全局变量,改变变量的作用域,变成了当前文件;
    3,修饰全局函数,改变函数的作用域,变成了当前文件
    好处:
    防止一个工程下成百上千个文件难免有对同一个变量的相同命名,只作用于当前文件,保证了程序的安全性。
  • 相关阅读:
    1052 卖个萌
    编程实现hdfs对文件的操作
    关于Eclipse编译运行MapReduce程序报错问题的解决
    用户模板和用户场景
    用户体验评价
    大二下学期软件工程课程总结
    教师派第二阶段10
    教师派第二阶段09
    教师派第二阶段07
    教师派第二阶段06
  • 原文地址:https://www.cnblogs.com/hetaoyuan/p/10068536.html
Copyright © 2011-2022 走看看