做网络竞拍的网站需要什么/互联网行业都有哪些工作

做网络竞拍的网站需要什么,互联网行业都有哪些工作,网站开发与设计的实训场地,网站建设费用一、基本概念 C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。 软件开发中,尽量缩小标识符的作用域是一项基本原…

一、基本概念

C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。

软件开发中,尽量缩小标识符的作用域是一项基本原则,一个标识符的作用域超过它实际所需要的范围时,就会对整个软件的命名空间造成污染,导致一些不必要的名字冲突和误解。

例子:你在一个工程里,定义了一个全局变量int num,那么接下来工程里面所有的区域,你都将要注意,定义变量时,不能和其产生冲突或者误解

二、函数声明作用域

  • 概念:在函数的声明式中定义的变量,其可见范围仅限于该声明式。
  • 要点:
  • 变量 num1 和 num2 只在函数声明式中可见。
  • 变量 num1 和 num2 可以省略,但一般不这么做,它们的作用是对参数的注解。
  • 示例代码
#include <stdio.h>// (1)、函数声明作用域:
extern int func1(int num1, int num2);  // 变量只作用在这一行
extern int func2(int, int);            // 上面的语句可以写成这样,但一般不建议,因为变量名可以为我们提供参考int main(int argc, char const *argv[])
{// (1)、在函数的声明式中定义的变量,其可见范围仅限于该声明式// num1 = 100;/*会报错:main.c:11:5: error: ‘num1’ undeclared (first use in this function)num1 = 100;^  原因:1、你真的没有定义这个变量num12、你定义了,但是num1变量,没能作用在你现在处在的内存区域中*/return 0;
}

三、局部作用域

  • 概念:在代码块中定义的变量,其可见范围从其定义处开始,到代码块结束为止。
  • 要点:
  • 代码块指的是一对花括号 { } 括起来的区域。
  • 代码块可以嵌套包含,外层的标识符会被内嵌的同名标识符临时掩盖变得不可见。
  • 代码块作用域的变量,由于其可见范围是局部的,因此被称为局部变量。
  • 示例代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{int num2 = 100;                  // 存储与栈空间,作用于本函数(main)的{}括号里面{ int num2 = 200;             // 存储与栈空间,作用于包括它的{}括号里面{int num2 = 300; num2 = 666;             // 优先使用最靠近它的{}括号(外层的标识符会被内嵌的同名标识符临时掩盖变得不可见)printf("num2(第三层) = %d\n", num2); }printf("num2(第二层) = %d\n", num2); }printf("num2(第一层) = %d\n", num2);    // printf函数因为在main函数的{}括号里,所以其打印的是作用范围在main函数的{}括号里num2变量}

四、全局作用域

  • 概念:在代码块外定义的变量,其可见范围可以跨越多个文件。
  • 要点:
  • 全局变量作用域在整个程序中,因此称其为全局变量
  • 如果a文件想要访问b文件的全局变量,需要在a文件函数体外,使用extern关键字在变量前面 进行修饰
  • 如果一个文件里的全局变量,只想作用于本文件,则在其前面加上static即可
  • 图解:

  • 示例代码:

main文件:

#include <stdio.h>
// 全局变量定义
int num3;                                // 存储与数据段的bss段中, 普通全局变量,跨文件可见(整个工程的文件都可以看到这个变量)
int num4 = 400;                          // 存储与数据段的data段中,普通全局变量,跨文件可见(整个工程的文件都可以看到这个变量)
static int num5;                         // 存储与数据段的bss段中, static全局变量,本文件可见(工程的其它文件不可以看到这个变量)
static int num6 = 600 ;                  // 存储与数据段的data段中,static全局变量,本文件可见(工程的其它文件不可以看到这个变量)// 全局函数声明
extern void a_func_1(void);              // 代码区(没有内存空间,只是一段跳转地址)int main(int argc, char const *argv[])
{num3 = 333;num4 = 444;printf("num3 = %d\n", num3);printf("num4 = %d\n", num4);// a_func_1();/*报错:a.c:(.text+0x27): undefined reference to `num5'a.c:(.text+0x31): undefined reference to `num5'原因:num5和num6由于在其它文件(a.c)不可见,其它文件(a.c)又调用了,这样会报错了*/
}

a.c文件

#include <stdio.h>
/*说明:对于函数:extern可以省略的,依然还是表示函数声明(因为你可以轻而易举的区分出谁是定义,谁是声明(有多条语句的就是定义,只有一条语句并且还有结束符;号的就是声明))对于全局变量:extern不可以省略的,因为可能会将其当成定义来对待(尤其是你没有初始化的时候)总结(给大家的建议):不论是函数,还是全局变量,都用extern来声明,不要省略不写*/
// 全局变量声明
extern int num3;    // 代码区,在本文件可见
extern int num5;    // 代码区,在本文件不可见(因为main函数使用static进行了修饰,掩盖了这个变量,所以找不到了)// 全局函数定义
void a_func_1(void) // 既是在代码区(代码文本+跳转地址),又在栈区(函数的具体内容)
{num3 = 100;printf("num3 = %d\n", num3);num5 = 555;printf("num5 = %d\n", num5);
}

五、作用域的临时掩盖

如果有多个不同的作用域相互嵌套,那么小范围的作用域会临时 “遮蔽” 大范围的作用域中的同名标识符,被 “遮蔽” 的标识符不会消失,只是临时失去可见性。

  • 示例代码:
int a = 100;// 函数代码块1
int main(void)
{printf("%d\n", a); // 输出100int a = 200;printf("%d\n", a); // 输出200// 代码块2 {printf("%d\n", a); // 输出200int a = 300;printf("%d\n", a); // 输出300}printf("%d\n", a); // 输出200
}void f()
{printf("%d\n", a); // 输出100
}

六、static关键字

C语言的一大特色,是相同的关键字,在不同的场合下,具有不同的含义。static关键字在C语言中有两个不同的作用:

  1. 将可见范围设定为标识符所在的文件:
  • 修饰全局变量:使得全局变量由原来的跨文件可见,变成仅限于本文件可见。
  • 修饰普通函数:使得函数由原来的跨文件可见,变成仅限于本文件可见。
  1. 将存储区域设定为数据段:

修饰局部变量:使得局部变量由原来存储在栈内存,变成存储在数据段。

  • 示例代码:
    int a; // 普通全局变量,跨文件可见
static int b; // 静态全局变量,仅限本文件可见void f1()        // 普通函数,跨文件可见
{}static void f2() // 静态函数,仅限本文件可见
{}int main()
{int c; // 普通局部变量,存储于栈内存static int d; // 静态局部变量,存储于数据段
}

至此,希望看完这篇文章的你有所收获,我是Bardb,译音八分贝,道友,下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AH表情捕捉设备:虚拟人动态表情捕捉

在虚拟人应用里&#xff0c;除了关注虚拟人能否展现流畅的肢体动作&#xff0c;其表情是否自然流畅同样关键。虚拟人作为新兴技术产物&#xff0c;广泛应用于娱乐直播、影视动画等领域。自然的表情能让虚拟人更具亲和力与真实感&#xff0c;大幅提升用户体验。 而广州虚拟动力…

pikachu

暴力破解 基于表单的暴力破解 【2024版】最新BurpSuit的使用教程&#xff08;非常详细&#xff09;零基础入门到精通&#xff0c;看一篇就够了&#xff01;让你挖洞事半功倍&#xff01;_burpsuite使用教程-CSDN博客 登录页面&#xff0c;随意输入抓包&#xff0c;发送到攻击…

C++预编译、编译、汇编、链接详解

一、准备阶段 g编译环境&#xff0c;配置好环境变量 新建一个helloworld.cpp #include <iostream> using namespace std; int main() {cout << "Hello, world!" << endl;return 0; }命令查看 g --help 二、预编译 预处理阶段对自定义和预定义…

docker使用代理的简单配置

1准备代理服务器 准备代理服务器&#xff0c;例如192.168.120.168:52209 配置docker.service文件 查看service文件的位置 systemctl status docker 编辑service文件 vim /usr/lib/systemd/system/docker.service 添加代理配置 ... [Service] Environment"HTTP_PROXY…

【FL0090】基于SSM和微信小程序的球馆预约系统

&#x1f9d1;‍&#x1f4bb;博主介绍&#x1f9d1;‍&#x1f4bb; 全网粉丝10W,CSDN全栈领域优质创作者&#xff0c;博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发…

使用esp32接入大模型(http请求)

本示例适用于所有乐鑫的esp32模组及开发板。使用串口通信和http协议。实现简单的和大模型对话要求。 话不多说直接上代码 #include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h>#define DEBUG 1// 替换为你的Wi-Fi网络凭据 #define WLAN_SSI…

GitHub高效搜索工具

[GitHub项目搜索工具] 一款开发者专属的星矿探测仪&#xff01; 你是否还在用stars:>1000手动筛选GitHub项目&#xff1f; 你是否经常为了找一个合适的开源库翻遍搜索结果&#xff1f; 这个工具或许能改变你的代码资源发掘方式… &#x1f31f; 痛点洞察 在GitHub的3.28亿个…

【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备

在开发实时数据监控应用时&#xff0c;记录接口请求的延迟对于性能分析和用户体验优化至关重要。本文将基于 UniApp 框架&#xff0c;介绍如何实现一个实时记录接口请求延迟的功能&#xff0c;并深入解析相关代码的实现细节。 前期准备&必要的理解 1. 功能概述 该功能的…

支付宝 IoT 设备入门宝典(下)设备经营篇

上篇介绍了支付宝 IoT 设备管理&#xff0c;但除了这些基础功能外&#xff0c;商户还可以利用设备进行一些运营动作&#xff0c;让设备更好的帮助自己&#xff0c;本篇就会以设备经营为中心&#xff0c;介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣&#xff0c;可以…

船舶广播系统:航行中的信息枢纽和安全保障

船舶广播系统是船舶重要的通信设备之一&#xff0c;承担着船舶内部通信、对外联络、应急广播等重要功能&#xff0c;船舶广播系统是船舶上的一种重要设备&#xff0c;它可以用于传递重要信息和指示&#xff0c;是保障船舶安全航行和乘客安全的重要设施。 船舶广播系统通常由以…

Unity插件-Mirror使用方法(一)Mirror介绍

目录 一、使用介绍 二、插件介绍 1、简述 2、核心功能与特点 基于组件的高层抽象 服务器-客户端架构 序列化与同步 可扩展性与灵活性 跨平台支持 社区与生态 3、典型应用场景 4、基本使用示例 安装 设置 NetworkManager 同步变量与 RPC 5、优缺点对比 6、为什…

企业如何挖掘数据资产价值?

本期推荐&#xff1a;挖掘数据资产价值&#xff0c;赋能企业发展&#xff0c;共28页ppt。 关注WeChat Subscription Account【智慧城市指北】&#xff0c;回复关键字“20250228数据资产”&#xff0c;获取获得本文电子版材料的方式(非无偿&#xff09;~ 篇幅限制&#xff0c;…

使用tkinter有UI方式来拷贝Excel文件

有需求使用tkinter 有用户交互界面来拷贝Excel文件&#xff0c;最后进行打包完成 代码如下&#xff0c;实现思路是先使用tkinter库选择Excel路径&#xff0c;然后保存到txt文档&#xff0c; import time import tkinter from pathlib import Path from typing import Optiona…

Android实现漂亮的波纹动画

Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果&#xff08;波纹大小变化、画笔透明度变化、画笔粗细变化&#xff09; 一、UI界面 界面主要分为三部分 第一部分&#xff1a;输入框&#xff0c;根据输入x轴、Y轴、Z轴倾…

Datawhale 数学建模导论二 笔记5 多模数据与智能模型

主要涉及到的知识点有&#xff1a; 数字图像处理与计算机视觉 计算语言学与自然语言处理 数字信号处理与智能感知 10.1 数字图像处理与计算机视觉 视觉信息是我们第一种非常规的数据模式&#xff0c;在Python当中可以使用opencv处理数字图像&#xff0c;并提取出视觉特征用…

python-leetcode-下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# Step 1: Find the first decreasing element …

tomcat转东方通

目录 前言登录服务器tomcat部署应用东方通部署东方通配置 启动参数配置-JVM参数启动参数配置-服务器参数WEB容器配置-虚拟主机管理WEB容器配置-HTTP通道管理 东方通密码重置 前言 本文简要Linux环境介绍tomcat部署的服务&#xff0c;换成中间件是东方通之后如何部署。 登录…

Jsmoke-一款强大的js检测工具,浏览器部署即用,使用方便且高效

目录标题 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt使用方式界面预览功能特性支持的敏感信息类型 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt ​ 该插件由 Yn8rt师傅 开发&#xff0c;插件可以理解为主动版的hae和apifinder&#xff0c;因为其中的大多数规则我都引用了&a…

DeepSeek赋能大模型内容安全,网易易盾AIGC内容风控解决方案三大升级

在近两年由AI引发的生产力革命的背后&#xff0c;一场关乎数字世界秩序的攻防战正在上演&#xff1a;AI生成的深度伪造视频导致企业品牌声誉损失日均超千万&#xff0c;批量生成的侵权内容使版权纠纷量与日俱增&#xff0c;黑灰产利用AI技术持续发起欺诈攻击。 与此同时&#…

【动手学深度学习】基于Python动手实现线性神经网络

深度学习入门&#xff1a;基于Python动手实现线性回归 1&#xff0c;走进深度学习2&#xff0c;配置说明3&#xff0c;线性神经网络4&#xff0c;线性回归从0开始实现4.1&#xff0c;导入相关库4.2&#xff0c;生成数据4.3&#xff0c;读取数据集4.4&#xff0c;初始化模型参数…