-
2018-05-23 15:42:09
在运行一个新程序的时候,我们往往需要先将环境中的变量清干净,也就是环境初始化。
网上常用的,reset方法需要手动在command windows里输入【y】,不利于多程序的自动化运行。
比较好的方法,是准备一个自动将自定义变量清空的脚本,在每次新程序运行时调用。
借鉴网上的方法:http://blog.sina.com.cn/s/blog_b2f983a50102yexs.html
1、编写自动清空自定义变量的脚本,将其储存为clear_env.py,放在自定义的文件夹内
def __clear_env(): for key in globals().keys(): if not key.startswith("__"): # 排除系统内建函数 globals().pop(key)
2、在每个新程序前加入以下代码,可自动初始化变量环境
import sys sys.path.append(u"F:\自定义文件夹名") import clear_env #导入clear_env.py模块 clear_env.__clear_env() #执行模块函数__clear_env()清楚自定义变量
更多相关内容 -
EBS初始化环境变量脚本
2018-12-22 20:22:52EBSapps.env 是 Oracle提供的初始化环境变量脚本,只需修改 node_info_file和other_node_info_file两个地方即可 -
Centos 7环境开发者环境初始化脚本
2018-12-26 15:18:15该资源包 是基于Centos 7 下面的 开发者环境初始化脚本 包含了 1. java 2. maven 3.mysql 4.nginx 5.redis -
SpringBoot2源码分析5-environment环境初始化
2021-08-26 11:38:15环境初始化 ApplicationArguments applicationArguments = new DefaultApplicationArguments(args); ConfigurableEnvironment environment = prepareEnvironment(listeners, bootstrapContext, applicationArguments...环境初始化
ApplicationArguments applicationArguments = new DefaultApplicationArguments(args); ConfigurableEnvironment environment = prepareEnvironment(listeners, bootstrapContext, applicationArguments); configureIgnoreBeanInfo(environment);
第一行就是存SpringApplication的run方法中传入参数并初始化
public DefaultApplicationArguments(String... args) { Assert.notNull(args, "Args must not be null"); this.source = new Source(args); this.args = args; }
没做太多的事情,主要就是初始化参数,一般传入的就是一行
例如我们使用java -jar 启动项目java -jar xxx.jar --server.port=9090
这个时候我们程序接收到的参数就是
--server.port=9090
这个DefaultApplicationArguments
中有2个参数source 他的内容就名称 commandLineArgs
args 就是一个数组,我们传入的 --server.port=9090准备环境
准备环境的内容还是比较多的
private ConfigurableEnvironment prepareEnvironment(SpringApplicationRunListeners listeners, DefaultBootstrapContext bootstrapContext, ApplicationArguments applicationArguments) { // Create and configure the environment ConfigurableEnvironment environment = getOrCreateEnvironment(); configureEnvironment(environment, applicationArguments.getSourceArgs()); ConfigurationPropertySources.attach(environment); listeners.environmentPrepared(bootstrapContext, environment); DefaultPropertiesPropertySource.moveToEnd(environment); Assert.state(!environment.containsProperty("spring.main.environment-prefix"), "Environment prefix cannot be set via properties."); bindToSpringApplication(environment); if (!this.isCustomEnvironment) { environment = new EnvironmentConverter(getClassLoader()).convertEnvironmentIfNecessary(environment, deduceEnvironmentClass()); } ConfigurationPropertySources.attach(environment); return environment; }
获取或创建环境
查看这个方法
getOrCreateEnvironment
根据不同的使用场景创建不同的环境private ConfigurableEnvironment getOrCreateEnvironment() { if (this.environment != null) { return this.environment; } switch (this.webApplicationType) { case SERVLET: return new ApplicationServletEnvironment(); case REACTIVE: return new ApplicationReactiveWebEnvironment(); default: return new ApplicationEnvironment(); } }
环境变量的选择是根据我们的实现的ApplicationContext的类型来选择使用哪种环境的
org.springframework.web.context.WebApplicationContext 实现
对应的是 ApplicationServletEnvironmentrg.springframework.boot.web.reactive.context.ReactiveWebApplicationContext实现
对应的是 ApplicationReactiveWebEnvironment默认的是ApplicationEnvironment
配置环境
protected void configureEnvironment(ConfigurableEnvironment environment, String[] args) { if (this.addConversionService) { environment.setConversionService(new ApplicationConversionService()); } configurePropertySources(environment, args); configureProfiles(environment, args); }
这里面主要是配置
configurePropertySources
会加入一下SimpleCommandLinePropertySource
configureProfiles
方法什么内容也不做附加环境
ConfigurationPropertySources.attach(environment)
接下来就是把环境附件给ConfigurationPropertySources
这里面的环境主要内容有- 文件的目录,JDK目录
- 操作系统等
- args传入的参数
监听器环境准备
listeners.environmentPrepared(bootstrapContext, environment);
需要2个参数
- 1上下文
- 2环境
void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) { doWithListeners("spring.boot.application.environment-prepared", (listener) -> listener.environmentPrepared(bootstrapContext, environment)); }
这里几乎看不出来什么信息,需要进一步查看
private void doWithListeners(String stepName, Consumer<SpringApplicationRunListener> listenerAction) { doWithListeners(stepName, listenerAction, null); }
这里传入的Listener的名称为 spring.boot.application.environment-prepared
最终执行的方法是private void doWithListeners(String stepName, Consumer<SpringApplicationRunListener> listenerAction, Consumer<StartupStep> stepAction) { StartupStep step = this.applicationStartup.start(stepName); this.listeners.forEach(listenerAction); if (stepAction != null) { stepAction.accept(step); } step.end(); }
去除默认属性
DefaultPropertiesPropertySource.moveToEnd(environment);
绑定Spring上下文
bindToSpringApplication(environment);
再次绑定属性
-
anaconda中python环境初始化
2019-08-06 10:32:05anaconda是管理python环境的一个理想化工具,主要是免费,官网可以简单下载安装,目前支持windows, mac, linux系统的安装。 最近为了使用aliyun的oss python api,通过anaconda新建了一个隔离环境,最后想将脚本自动...anaconda是管理python环境的一个理想化工具,主要是免费,官网可以简单下载安装,目前支持windows, mac, linux系统的安装。
最近为了使用aliyun的oss python api,通过anaconda新建了一个隔离环境,最后想将脚本自动化,每天都执行一次,可是有点问题,报如下错误:CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <SHELL_NAME> Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell See 'conda init --help' for more information and options. IMPORTANT: You may need to close and restart your shell after running 'conda init'.
后来在博客上找到,是因为conda activate要初始化一个环境,就是要执行一个脚本。脚本的位置,可以在bash中找到,大致是这样的一句话。
. /home/hocker/anaconda3/etc/profile.d/conda.sh
然后就可以脚本中添加
conda activate oss2
之类的环境激活语句了。
参考
非常感谢 luokid12138 博主。和crontab结合就可以解决问题了。
-
AirtestIDE1.2.13的安卓手机设置自动初始化功能
2022-01-27 11:34:01在AirtestIDE1.2.13版本中,我们新增了1个 **安卓手机设置初始化的功能** (以下简称手机初始化功能),能够在手机已经打开 `USB调试`、且已安装 `PocoService` 的前提下,**自动** 进行一些手机相关设置项的自动...此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1. 前言
在AirtestIDE1.2.13版本中,我们新增了1个 安卓手机设置初始化的功能 (以下简称手机初始化功能),能够在手机已经打开
USB调试
、且已安装PocoService
的前提下,自动 进行一些手机相关设置项的自动设置工作。比如有时候,我们会忘记设置pocoservice的自启动、启用Yosemite输入法或者关闭安全键盘等,甚至新手同学可能并不知道要对哪些设置项进行操作,就可以使用1.2.13提供的手机初始化功能来帮助我们自动进行设置。
2. 准备工作
请务必确认以下所有步骤都已完成,否则无法使用手机初始化功能进行自动初始化:
1)打开USB调试
打开手机的开发者选项开关,然后在开发者选项中打开USB调试开关。
2)使用USB连接手机并信任设备
使用USB连接手机,当手机弹出信任弹窗时,点击信任。
3)adb devices能看到手机
确认电脑上能够用
adb devices
指令,看到手机出现在列表中。4)确认手机设置
- 部分品牌如OPPO/VIVO/Realme手机,需要事先登录账号才能够进行APK的安装,请务必提前登录账号,以方便后续安装apk步骤的进行(Yosemite.apk和pocoservice.apk)
- 小米手机需要确认【USB调试(安全设置)-允许模拟点击】选项已经开启
3. 如何使用
1)初始化功能入口
准备工作做好之后,我们可以在AirtestIDE的设备窗里,点击
刷新ADB
,等待刷出待测设备列表之后,再点击connect
右侧的下拉按钮,选择Init Device
按钮:之后会弹出一个手机初始化功能的窗口:
在这个弹窗里,我们可以事先填入安装apk时需要输入的密码,之后点击
开始初始化
,在安装apk时会自动帮我们输入安装密码(无需我们人工处理)。当然我们也可以不填入安装密码并点击
开始初始化
,这样在安装apk时,就需要人工输入安装密码完成相应apk的安装(pocoservice.apk和Yosemite.apk)。2)简单演示初始化功能
这里我们简单展示下手机初始化功能的效果:
3)如何停止初始化
点击
停止运行
的按钮即可停止自动初始化,快捷键是shift+F5
。4)结果查看
初始化功能结束后,会将该品牌的设置项都显示在终端中,同时也会列出失败的项目,部分失败原因是本机型没有相关设置项、或是无需设置,这种情况可以人工检查复核后忽略就行。
部分失败原因是因为我们预先写好的规则中不包括该机型的相关设置,如果遇到了此种情况,可以将该机型+对应的正确设置方法反馈给我们( https://airtest.netease.com/issue_create ),我们将会及时更新规则和相关文档。
以下述初始化功能的log为例:
----------------------- * * * ----------------------- OPPO手机的设置项: - 连接模式-传输文件 - 【需手动设置】请事先登录好OPPO账号 - 【需手动设置】开发者选项开启方式:连续点击【设置-系统管理-关于手机-版本信息-软件版本】 - 设置-电池-应用耗电管理-pocoservice-允许应用自启动,允许完全后台行为 - 设置-其他设置-开发者选项-禁止权限监控 打开,充电时屏幕不休眠 打开 - 设置-其他设置-键盘与输入法-管理输入法-yosemite 启用 - 设置-其他设置-键盘与输入法-输入密码时启用安全键盘 关闭 - 设置-安全与隐私-允许安装未知来源的应用 打开 (不是所有机型都有) - 【无需设置】如OPPO出现10分钟断连的情况,不要插拔手机,直接在屏幕上方下拉的选项里再次打开 USB调试 ----------------------- 以下步骤设置失败: ----------------------- - 设置-安全与隐私-允许安装未知来源的应用 打开 (本选项不是所有的机型都有) 错误原因: Cannot find any visible node by query UIObjectProxy of "text=安全与隐私"
我们可以根据log中列出的选项,检查手机上的各个选项是否正确被处理了。
出现错误的可能原因:
- 该手机并没有相关的设置项,由于机型版本不同,导致设置项在同一品牌手机上也有很大差异,有些选项如果找不到可以忽略
- 部分手机有相关选项,但因为机型或系统版本不同,导致我们目前的规则并没有能够覆盖到该款手机,若出现该情况,可以将手机机型和对应的设置反馈给我们
- 部分选项不是必须的,如果不做处理,可能影响很小,可以视情况忽略(例如充电时保持屏幕常亮、或是监控ADB安装应用等选项,并非必须要处理的选项)
- 几乎绝大多数品牌手机都需要允许PocoSerivce.apk能够在后台启动,部分手机可能在还没来得及做出修改前,poco进程就被手机杀后台了,可能需要手工处理(例如一加8T)
4. 注意事项
1)初始化功能做的事情
- 先进行手机图像查看、点击操作的初始化
- 安装PocoService.apk,这个步骤可能需要人工在手机上进行安装确认或输入密码
- 安装Yosemite.apk,此步骤同样可能需要人工确认
- 根据各品牌手机的一些设置规则,依次进行手机设置的修改,部分手机可能会因为PocoService被手机自动杀后台,导致初始化失败,可以尝试重复运行、或是人工设置
2)支持的品牌
以下是当前支持的品牌:
- 三星
- 华为(包含荣耀)
- OPPO
- VIVO
- 一加
- Realme真我(大体与OPPO类似)
- 小米
- 魅族
3)相关设置项
本功能会关闭手机很多安全性相关的选项,主要为自动化测试提供方便,如果是自己平时使用的手机,请先阅读好下方的各个配置项列表,确认内容无误后再运行:
小米手机(请务必登录账号先进行设置!!!!)
- 【需手动设置】需要插入sim卡并登录小米账号(小米开启权限时需要插入SIM卡,完成选项开启后可以拔卡)
- 【需手动设置】开启开发者选项:连续点击【设置 - 我的设备 - 全部参数 - MIUI版本】
- 【需手动设置】设置开发者选项:(根据MIUI版本不同,描述可能不一样)
- 开启【USB调试】、【USB安装】、【USB调试(安全设置)-允许模拟点击】
- 禁用开发者选项底部【启动MIUI优化】、【高风险功能开启提醒】
- 禁用手机管家-应用管理-权限-右上角的设置- 【应用权限监控】和 【USB安装管理】
- 启用手机管家-应用管理-权限-自启动管理-PocoService,允许PocoService自启动
- 语言与输入法:关闭【安全键盘】,在输入法管理中,启用【Yosemite输入法】
- 如果手机依然无法看到屏幕,可以检查Yosemite.apk是否成功安装(可以手动安装),并且对应的权限都开启了
华为手机的设置项
- 【手动设置】USB模式-文件,若开启了仅充电模式下允许调试才能直连
- 设置-高级设置-语言和输入法-安全输入 关闭 (不同机型该选项有不同入口)
- 设置-开发者选项-监控 ADB 安装应用 关闭
- 设置-开发者选项-“仅充电”模式下允许 ADB 调试 打开
- 手机管家(大于8.0版本)-应用启动管理-PocoService允许自启动和后台活动
OPPO手机的设置项
- 【需手动设置】请事先登录好OPPO账号
- 设置-电池-应用耗电管理-pocoservice-允许应用自启动,允许完全后台行为
- 设置-其他设置-开发者选项-禁止权限监控 打开
- 设置-其他设置-键盘与输入法-管理输入法-yosemite 启用
- 设置-其他设置-键盘与输入法-输入密码时启用安全键盘 关闭
- 【手动设置】如OPPO出现10分钟断连的情况,不要插拔手机,直接在屏幕上方下拉的选项里再次打开 USB调试
VIVO手机的设置项
- 【需手动设置】请事先登录好VIVO账号
- 【需手动设置】设置-开发者选项-USB模拟点击 打开(如有)
- 电池-后台高耗电-> PocoService 开启
- 设置-输入法-安全输入 关闭
- 开发者选项-安全权限 打开(暂未添加)
- 设置-安全与隐私-防止恶意截屏录屏 关闭
- 设置-更多设置(或系统管理)-开发者选项->通过USB验证应用 关闭
- 【可选】开发者选项-不锁定屏幕 开启 (此选项能避免长时间连接时,手机自动关闭开发者选项的问题,若需要长期连接可以开启)
三星手机
- 【需手动设置】插入USB时,允许访问手机数据
- 【需手动设置】选择安装PocoService(如果是国际版,可能会被google play检测)
- 设置-显示-屏幕分辨率-WQHD±应用-确定,将分辨率调到最大
- 【暂未实现】部分型号手机在开发者选项中,打开未知来源、取消权限监控。
Realme真我(与OPPO基本一致)
- 【需手动设置】请事先登录好Realme账号
- 设置-电池-应用耗电管理-pocoservice-允许应用自启动,允许完全后台行为
- 设置-其他设置-开发者选项-禁止权限监控 打开(必须),充电时屏幕不休眠 打开(非必须)
- 设置-其他设置-键盘与输入法-【管理输入法-yosemite】 启用, 【输入密码时启用安全键盘】 关闭
一加手机的设置项
- 【可能需手动设置】设置-电池-电池优化-PocoService-不优化 (可能在设置成功前,进程就已经被手机终止了,因此本选项可能需要手工进行设置)
- 设置-其他设置-键盘与输入法-输入密码时启用安全键盘 关闭
- 设置-其他设置-键盘与输入法-管理输入法-Yosemite输入法 启用
- 设置-其他设置-开发者选项-禁止权限监控 打开, 充电时屏幕不休眠 打开(非必选)
魅族手机的设置项
- 手机管家-权限管理-后台管理-PocoService-允许后台运行
- 手机管家-USB安装管理-USB安装管理 取消选中,可以在安装apk时不再出现弹窗
- 设置-语言和时间-Yosemite输入法 勾选,取消密码安全保护
Airtest 官网:http://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b官方答疑 Q 群:117973773
呀,这么认真都看到这里啦,帮忙点个赞或者收藏支持下我把,灰常感谢~
-
Linux环境变量和初始化配置
2017-01-16 13:36:351.环境变量在 etc/profile 文件中, PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/samba/bin 添加或者删除 环境变量 也可以直接使用 PATH=$PATH:/usr/local/samba/bin 如是/etc下的profile,是... -
Word2003出现 无法初始化visual basic环境 的解决办法
2019-04-22 11:46:28Word2003出现 无法初始化visual basic环境 的解决办法 -
无法初始化设备 prn
2021-07-28 10:42:54在pycharm里面的local输入python代码提示无法初始化设备prn,这是因为你没有进入到python环境中,先输入python回车,然后就可以正常输出了,跟cmd是一样的 -
(1)uni-app—初始化项目
2022-02-11 22:10:04一、uni-app介绍 官网 uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、...三、HbuilderX初始化创建项目 1.文件 > 新建 > 新建项目 > 选择uni-app > 填写... -
PyCharm 环境初始化
2018-08-15 09:10:13PyCharm初始化 1. 新建项目 2. 新建文件(Alt+Insert) 3. PyCharm的嵌入式工具 3.1 Terminal(终端) 启动方式: 插件配置: 3.2 Python Console(解释器) 启动方式: 插件配置: 4. 运行Python程序 4.1 第... -
1_AURIX 应用笔记 TC27xC启动与初始化.pdf
2020-03-11 01:15:23⇒ 初始化 CPU0 的 C 运行环境( Cstart 程序), AURIX 复位后, CPU0 是默认激活的 CPU。 ⇒ 复位测试确定是否需要重新配置时钟。 然后执行 RAM 一致性检查,以确保 RAM 测试和初始化的正确 完成。 ⇒ 之后进行... -
搭建Hadoop集群环境三:hadoop环境初始化
2022-04-20 21:57:40hadoop集群环境的初始化 -
windows bat配置环境变量、初始化MYSQL
2018-02-13 15:00:57该脚本需要使用管理员权限运行JAVA_JRE环境变量设置备注:避免重复添加环境变量到Path,我用jre的版本1.8.0_161来判断是否已经添加了JAVA_HOME,目前配置基本是正确了,但是有一些小瑕疵,有待改善,不至于像cp过来的... -
测试环境,数据初始化流程介绍
2019-05-16 21:13:360. 写在前面 每个公司、组织都有一套管控生产数据、...0),其中IX、SX是用作接口测试、系统设计测试(功能测试)的环境,TX是性能测试环境,Stage测试环境是集成测试环境;回归测试贯穿于所有测试环节,当前测试环... -
怎样初始化vs环境
2013-12-04 16:12:59工具箱不可用/怎样初始化vs环境 解决方案 解决方案: 在vs2005的路径下输入 devenv.exe /resetuserdata 重新设置下环境 例如:Microsoft Visual Studio 8\VC>devenv.exe /resetuserdata 或者: ... -
SuperMap环境初始化Environment.initialization(this)空指针问题
2020-03-03 13:10:40报错信息: 报错信息:Attempt to get length of null array,在Environment.initialization(this);这一行,本来就没写几行代码,出现了这种问题,很多人说是动态权限申请问题和授权文件的问题,在确认无误的情况下... -
switch国行怎么初始化-switch国行初始化教程
2021-08-06 10:44:29主机的初始化方法初始化是指,将主机内的数据删除,恢复到购入时的状态。Nintendo Switch可以仅将一部分数据进行初始化。初始化缓存与账号关联或发布截图和视频至社交平台时,将在主机中打开网页。初始化缓存将清除... -
win10初始化这台电脑——找不到恢复环境
2022-03-21 16:59:383、重新创建Windows RE恢复环境 不要再C盘根目录创建Recovery,创建后会消失,即使打开隐藏还是看不到。 (1)在C:\新建文件夹\目录下创建名为“Recovery”的文件夹 (2)在“Recovery”的文件夹里创建名为"W. -
Matlab R2018a初始化问题
2018-07-21 11:55:46前几天装的MATLAB2018(我装在C盘,用的是在线安装,自己下的License破解了),但是初始化问题一直没解决,下面显示我遇到的问题: 等4-5分钟才就绪,真的很浪费时间,然后百度别人的解决方案,看到网上很多是... -
Mac环境变量配置错了以后初始化的方法
2016-03-14 14:39:04配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的 保存命令是: source .bash_profile 说下我的解决方法: 1,在命令行中... -
Linux虚拟机环境初始化设置
2020-07-25 00:47:19以下介绍如何快速初始化Linux虚拟机设置。 版本:CentOS7.5 + 安装过程略,建议选择最小安装。 基础组件安装 修复主机名,笔者这里改成centos-linux hostnamectl set-hostname centos-linux 查看Linux系统... -
D3D 初始化环境 ——IDXGISwapChain::Present() 呈现绘制效果图
2018-08-29 16:25:31刚刚开始学习D3D,所以第一步就是初始化D3D绘制环境。 所有的绘制参数和对象都初始化完成后必须调用IDXGISwapChain::Present(); Present 呈现一个渲染图片给用户。 参数为(0,0)即可;... -
dm达梦数据库 报错[-70070]初始化SSL环境失败
2020-06-30 19:06:54今天在dm中新建了一个用户,但是使用这个用户去连接数据库时出现下面的报错: 查阅资料得知,因为在dm安全版中默认开启了SSL加密,所以需要关闭: SQL> sp_set_para_value(2,'ENABLE_ENCRYPT',0);... -
kettle环境初始化
2016-10-28 15:02:58背景程序启动时会初始化...通过KettleEnvironment.init()来初始化环境时,会读取属性文件、注册插件等,以init()方法为切入点,调试了一下源码,大概整理了一下脉络,并简单记录下来:步骤 调用KettleClientEnvironment -
plupload 上传组件初始化问题
2017-02-28 16:18:34Plupload 上传组件支持html5,flash,silverlight,html4四种上传方式,初始化时可以在如下配置中指定加载顺序: 当我们没有配置runtimes参数时,Plupload默认会根据你的其他的参数配置来选择最合适的上传方式。如果... -
Docker容器启动前的初始化(备忘)
2018-04-15 13:40:51类的数据库,可能需要一些数据库配置、初始化的工作,这些工作要在最终的 mysql 服务器运行之前解决。 此外,可能希望避免使用 root 用户去启动服务,从而提高安全性,而在启动服务前还需要以 root 身份执行... -
服务器初始化
2021-08-09 15:30:10服务器初始化后(Ubuntu 20.04),创建了一个新的账户,创建命令如下: adduser Ant # 创建新用户Ant passwd Ant # 设置Ant账户的密码,然后输入密码即可 赋予Ant账号sudo权限 在root账户下,输入如下命令: ... -
初始化mysql的数据库失败怎么办
2021-02-01 21:20:27初始化mysql数据库失败的解决办法:首先找到并打开my.ini文件;然后注释掉my.ini文件中的datadir;最后根据提示把UTF8换成UTF8MB4即可。推荐:《mysql视频教程》安装MySQL8,安装时初始化数据库失败大概过程下载解压... -
C语言中变量未初始化的处理
2022-02-11 10:44:46实例测试1--DEV-C++环境 : #include <stdio.h> //全局整形变量 int int_var1; static int stc_int_var1; short int sht_int_var1; long int log_int_var1; //全局指针变量 char *int_opt1; int main() { ...