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,修饰全局函数,改变函数的作用域,变成了当前文件
    好处:
    防止一个工程下成百上千个文件难免有对同一个变量的相同命名,只作用于当前文件,保证了程序的安全性。
  • 相关阅读:
    驴的故事
    leetcode125. Valid Palindrome
    C#处理Excel的帮助类
    用SVN进行团队开发协作生命周期详解
    .net反编译原理
    科学使用Log4View2查看日志
    NLog日志框架使用探究-2
    NLog日志框架使用探究-1
    从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)
    十分钟学会 Markdown 基本语法
  • 原文地址:https://www.cnblogs.com/hetaoyuan/p/10068536.html
Copyright © 2011-2022 走看看