博客
关于我
Linux下的64位数赋值要加入LL
阅读量:790 次
发布时间: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中 dir 命令还能这样玩!
查看>>
Linux中.a,.la,.o,.so文件的意义和编程实现
查看>>
linux中6个被低估但很有用的命令
查看>>
Linux中Docker的使用
查看>>
linux中ElasticSearch的安装 安装ES&Kibana 配置IK分词器(环境搭建)
查看>>
Linux中find常见用法示例
查看>>
Linux中find常见用法示例
查看>>
Linux中ftp连接530错误的解决方法
查看>>
Linux中install命令你有用过吗?用途很大!
查看>>
Linux中Kill进程的N种方法
查看>>
Linux中Mysql的简介和安装
查看>>
Linux中MySQL配置文件my.cnf参数优化
查看>>
Linux中rpm命令用法
查看>>
Linux中systemctl命令骨灰级详解
查看>>
Linux中telnet命令
查看>>
Linux中vim编辑器的使用
查看>>
Linux中yum和apt-get用法及区别
查看>>
linux中~和/的区别
查看>>
linux中下载和安装git2.3.0
查看>>
Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!
查看>>