首页 > 其他分享 >生疏语法

生疏语法

时间:2023-05-20 21:02:14浏览次数:23  
标签:语法 typedef int 生疏 add static 修饰 全局变量

一. typedef用法详解

1. 功能概述:

typedef关键字可以用于为已经存在的数据类型定义一个新的别名,目的是使数据类型的名称更容易被理解,也可以提高代码的可读性和可维护性

#include <stdio.h>

typedef unsigned int unit;

typedef struct Node {
	int a;
	int b;
}Node;

int main()
{
	unsigned int num1;
	unit num2;            //

	struct Node n1;
	Node n2;              //

}

二. define用法详解

1. 定义标识符常量

#define  NUM       100

2. 定义宏

#define  ADD(x, y)   ((x) + (y))    

1. 这里ADD是宏名
2. (x,y) 是宏参数
3. ((x) + (y))是宏体


三. static详解

1. static修饰局部变量

static 修饰的变量会保存到静态区, 并且变量只会被创建一次, 声明周期和程序的声明周期一样长, 但是作用范围依然是其所在的代码块内.

void add(int a) {
    int count = 0; // 普通局部变量
    static int sum = 0; // 静态局部变量

    count++; // 每次调用函数时都会初始化,不同调用之间互不影响
    sum += a; // 只在第一次调用函数时初始化,之后每次调用时都会保持上一次的结果

    printf("Count: %d, Sum: %d\n", count, sum);
}

int main() {
    add(3);   //Count: 1, Sum: 3
    add(4);   //Count: 1, Sum: 7
    add(5);   //Count: 1, Sum: 12
    return 0;
}

2. static 修饰全局变量

static修饰全局变量的时候, 这个全局变量的外部连接属性, 就变成了内部链接属性, 其他源文件就不能再用到这个全局变量了.

static修饰全局变量依然存储在静态区.

/*
另外,使用static修饰的全局变量在程序启动时会被初始化为0,和未被赋初值的普通全
局变量不同。需要注意的是,在C++中,如果一个全局变量被static修饰,那么在另一个
文件中声明一个同名的全局变量是完全合法的,这两个变量是不同的,互相独立。但在C
中,同名的全局变量会被认为是同一个变量,其余文件中的声明会被忽略。因此,在C中,
一般会将使用static修饰的全局变量放到单独的源文件或者头文件中,并在该文件中做出
定义,以便使用该变量的其他文件引用。
*/

3. static 修饰函数

static修饰函数也是关闭函数的外部链接属性.

标签:语法,typedef,int,生疏,add,static,修饰,全局变量
From: https://blog.51cto.com/u_16120559/6317902

相关文章

  • Dockefile构建镜像语法:
    1.构建nginx镜像#BaseimageFROMcentos:7#MAINTAINERMAINTAINERcbmiao<[email protected]>#将nginx以及pcre源代码加入镜像ADDnginx-1.20.1.tar.gz/usr/local/src/ADDpcre-8.45.tar.gz/usr/local/src/#安装编译器RUNyuminstall-ygccgcc-c++makeopens......
  • day10-12 函数语法铺垫&函数的参数
    第八节函数【一】函数初识【一】函数的基本使用基于前一部分的学习,我们已经能开发一些功能简单的小程序了,但随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复......
  • Typora语法大全(包含数学公式)
    一、Markdown基本语法  标题 #一级标题(快捷键Ctrl+1) ##二阶标题(快捷键Ctrl+2) ###三阶标题(快捷键Ctrl+3) ####四阶标题(快捷键Ctrl+4) #####五阶标题(快捷键Ctrl+5) ######六阶标题(快捷键Ctrl+6) 如何生成目录  @[TOC]目录 在文章开始地方输入[t......
  • SQL语法快速回顾
    学习及整理来源:SQL教程|菜鸟教程(runoob.com)做了些笔记快速记忆以下为示例表(在'People'数据库中创建了'Friends'表)DATABASENAME:PeopleTABLENAME:FriendsidnamelocationitemSorN1ztyCNswitchY2terCAxboxY3jo5CNps5N4adaCApcN......
  • Mysql基础语法
    根据分组,查询最新时间的一条数据-基础语法select*fromtablewhereidin( selectSUBSTRING_INDEX(GROUP_CONCAT(idORDERBYupdate_timedesc),',',1) fromtableGROUPBYunique_key_column);-创建数据库dropdatabaseifexists`syntax_db`;createdat......
  • 12-DSL查询语法-精准查询
    精确查询一般是查找keyword、数值、日期、boolean等类型字段。不会对搜索条件分词。常见的有:(1)term:根据词条精确值查询 (2) range:根据值的范围查询term查询因为精确查询的字段搜是不分词的字段,因此查询的条件也必须是不分词的词条。查询时,用户输入的内容跟自动值完......
  • 练习基本语法
    #include<iostream>usingnamespacestd;classrect{public: intlen,wid; rect(intl,intw) { len=l; wid=w; } intarea() { returnlen*wid; }};voidmain(){ rectr1(10,5),*p; p=&r1; cout<<(*p).len<<endl; cout<<p->wid<<en......
  • Java程序设计复习提纲(上:入门语法)
    目录上:基本语法与编译运行数据类型和关键字常用语法数组与字符串异常处理中:面向对象和类下:图形界面基本语法与编译运行java没有指针没有全局变量Java源代码文件的后缀名是".java"。编译后会生成一个或多个字节码文件,后缀名为".class"。Java的编......
  • 从C到C++:学习C++的高级语法、STL和面向对象编程
    好的,那我为您写一篇有关C++编程的文章,详情如下。标题:从C到C++:学习C++的高级语法、STL和面向对象编程开头:C++语言是对C语言的扩展,是一种面向对象的程序设计语言。它具有丰富的数据类型、函数模板、类模板、标准模板库等高级特性。掌握高级语法、STL和面向对象编程,可以使程序员更加高......
  • Python的基础语法“四” 数据类型内置方法
    数据类型内置方法1.整型1.语法: int()2.作用: 将括号内数据转化为整型还可以进行进制转换2.1、我们常见的进制有哪些?#常见的进制数:二进制、八进制、十进制、十六进制(ABCDEF)#二进制和十进制之间转换#十进制转二进制:除2取余法#......