我在openssl源代码中注意到一个奇怪的成语,

here并重复如下:

if ((in == NULL) && (passwds == NULL)) {

if (1) { (*

#ifndef OPENSSL_NO_UI

/* build a null-terminated list */

static char *passwds_static[2] = { NULL, NULL };

passwds = passwds_static;

if (in == NULL)

if (EVP_read_pw_string

(passwd_malloc, passwd_malloc_size, "Password: ",

!(passed_salt || in_noverify)) != 0)

goto end;

passwds[0] = passwd_malloc;

} else {

#endif

BIO_printf(bio_err, "password required\n");

goto end;

}

}

看来这段代码相当于:

if ((in == NULL) && (passwds == NULL)) {

#ifndef OPENSSL_NO_UI

/* build a null-terminated list */

static char *passwds_static[2] = { NULL, NULL };

passwds = passwds_static;

if (in == NULL)

if (EVP_read_pw_string

(passwd_malloc, passwd_malloc_size, "Password: ",

!(passed_salt || in_noverify)) != 0)

goto end;

passwds[0] = passwd_malloc;

#else

BIO_printf(bio_err, "password required\n");

goto end;

#endif

}

我排除了一些解释:

>它可能是为passwds_static引入块范围,但是如果将为类似的目的提供封闭的范围

>它可能是一个通过几个有意义的变换变得没有意义的结构,但那个结构就是since the introduction of OPENSSL_NO_UI.

我在这里遗漏了什么吗? (1)有什么好处?这是否用于其他代码库?

谢谢!

if是什么c语言,这个C语言是什么(if(1))?相关推荐

  1. c语言表达式3178的值为,【C语言】C语言运算符

    c语言 &取地址运算符的理解 对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&am ...

  2. 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...

  3. 为什么要使用Go语言?Go语言的优势在哪里?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Go语言之所有越来越受到开发者的欢迎,我认为与其超高的实用价值密不可分.要知道Go语言是为了解决现实问题而设计的,而不是 ...

  4. java 全局变量_Java语言与C语言、C++语言有何差异以及优劣势

    差异 熟悉C语言和C++语言的读者一定想搞清楚这个问题,实际上,Java确实是从C语言和C++语言继承了许多成分,甚至可以将Java看成是类C语言发展和衍生的产物.比如Java语言的变量声明.操作符的 ...

  5. python是高级动态语言_Python动态语言之魅力揭秘

    之前的文章跟大家讲解了鸭子类型,其实鸭子类型是编程语言中动态类型语言中的一种设计风格.今天跟大家一起谈谈动态语言的魅力. 根据维基百科,动态编程语言是这样子定义的:动态编程语言是高级编程语言的一个类别 ...

  6. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...

    之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言​zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...

  7. 脚本编程语言python语言-python语言是脚本语言吗

    Python是一种编程语言还是脚本语言? Python是GuidoVanRossum开发的最著名的编程语言之一.Python在开发人员中很受欢迎,因为它具有清晰的语法和简单的代码,甚至对于初学者来说也 ...

  8. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )

    文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...

  9. 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )

    文章目录 一.Groovy 支持 Java 语法 二.Groovy 支持 Java 虚拟机 三.Groovy 语言是 动态语言 四.Groovy 扩展 JDK 五.Groovy 编译时元编程 一.Gr ...

  10. 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

最新文章

  1. 多年后的同学聚会,程序员混得最差?
  2. 谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”
  3. vue前端上传文件夹的插件_基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件...
  4. 微信客户端<->腾讯微信服务器<->开发者服务器
  5. (tmp 8) 0xff;
  6. atheros有线网卡LINUX驱动,请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?...
  7. mysql 查询语句属性值_MySQL学习——SQL查询语句(一)
  8. 搜索引擎的那些事(web遍历)
  9. vs2017配置pthread.h的方法
  10. 纪念 C语言之父 丹尼斯·里奇 逝世11周年:他发明了计算机世界的钢筋水泥!...
  11. 会考计算机考试模拟软件,计算机会考考试模拟(范文).doc
  12. 尤雨溪: 2022 Web 前端生态趋势
  13. LINUX 下播放 DVD 全攻略 (关键字 DVD-ROM LiViD fifo OMS)
  14. 干货分享:微信好友删除了怎么找回?领取超好用的恢复方法
  15. html文件导入到u盘中,技术分享 - 编程实现U盘插入自动复制U盘内容到本地
  16. [高数][高昆轮][高等数学上][第一章-函数与极限]06.极限存在法则 两个重要极限...
  17. 征服英语的33条军规
  18. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行
  19. nginx-rtmp-hls 模块---大疆mavic推流hlx无法播放问题
  20. 信息学奥赛一本通 题解目录

热门文章

  1. android开发屏幕横放,android-即使从横向旋转到垂直,细节片段也会...
  2. 腾讯财报中“最大秘密”:2018云收入91亿元,交首份TO B答卷
  3. 左偏树 P3377【模板】左偏树(可并堆)
  4. vscode Go 1.11.4 编译错误 need Delve built by Go 1.11 or later
  5. MSSQL-最佳实践-如何监控备份还原进度
  6. Gson的使用,对于不需要html escape的情况的处理
  7. 原创 通过PEB获得进程路径 (附完整工程)
  8. android开发,设置listview的高度无效
  9. php __FILE__和$_SERVER['SCRIPT_FILENAME']区别
  10. DevExpress之TreeList节点绑定图片