博客
关于我
Linux下的64位数赋值要加入LL
阅读量:791 次
发布时间:2023-02-03

本文共 592 字,大约阅读时间需要 1 分钟。

一个令人哭笑不得的技术瞬间


最近和同事一起编写C语言代码时,经历了一个让人哭笑不得的经历。事情是这样的,如果是普通的整数直接赋值,简单地写一个int a = 123;还是很容易的。但当涉及到大整数的赋值时,就必须用扩展的long long来表示,以容纳更大的数值。


赋值uint64_t socket_serial = 0x1111222233334444LL;这行代码总让我感到困惑。我们在代码编译时,finder小组发现这一行代码反常地导致程序崩溃,原因在所知的编译器报错提示中:“无法将LL附加到无关的类型”。


经过一番反复推敲,我们终于发现了问题的根源。关键词是“LL”这两个字母在什么时候才真正起作用。我在文档中搜索了相关的语言规范,才终于明白,“LL”必须紧跟在一个数字后面,而不能随便放在任何地方。也就是说,0x1111222233334444LL的写法是正确的,但如果写成0x1111222233334444L,或者在数字后面随便加个“L”,那就完全不行了。


这个小细节我只花了大半小时才终于弄明白,用来回去地尝试各种可能性。不过这次经历还是让我受益匪浅,学会了在编程过程中更加小心处理细节。


如果说这次经历有什么收获,那就是提醒我们在面对看似简单的语法细节时,一定要认真理解背后的规则。毕竟啊,编程虽然是一门逻辑的语言,但实际编码过程中总会有意想不到的坑在等着我们。

转载地址:http://ajzfk.baihongyu.com/

你可能感兴趣的文章
Linux下的系统安全加固与入侵检测全解析
查看>>
Linux下的系统监控与性能调优:从入门到精通
查看>>
Linux下的自动化任务与计划任务:让你的系统更智能
查看>>
Linux下的软件包管理:一文掌握核心工具与操作
查看>>
linux下监控用户操作记录的工具
查看>>
Linux下磁盘的分区
查看>>
linux下解压命令
查看>>
Linux下设置Tomcat启动参数
查看>>
linux下迅雷远程下载服务,在 Linux 下使用迅雷的另一种无入侵方式
查看>>
Linux下运行Jmeter压测
查看>>
Linux下进程通信与FIFO操作详解
查看>>
Linux下通过ssh访问另一台内网服务器
查看>>
Linux下通过端口杀死进程
查看>>
Linux下部署maven-web项目,包括JDK安装、TOMCAT安装、MYSQL安装详细解释
查看>>
linux下配置Java环境变量
查看>>
Linux下配置Mysql允许远程访问
查看>>
Linux下配置无密码登录
查看>>
Linux下,C++判断指定路径下,是否存在wps打开的文件
查看>>
Linux下,Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法
查看>>
Linux下,配置nodejs环境两种方法,并使用cron系统任务定时启动web服务
查看>>