CPP中的字符串变量的sz前缀是什么意思

2025-01-27T00:00:00Z | 1分钟阅读 | 更新于 2025-01-27T00:00:00Z

@

背景介绍

在最近参与的一个VNC远程控制项目中,我接触到了UltraVNC的源码。该项目采用了UltraVNC 的定制版本作为服务端,配合Apache Guacamole 作为客户端,实现了浏览器端的远程桌面控制功能。

发现命名惯例

在深入研究UltraVNC源码时,我注意到了一个有趣的命名模式:几乎所有的字符串变量都以"sz"作为前缀,例如:

char* szCmdLine = szCmdLine2;

“sz"前缀的由来

通过查阅资料,我在StackExchange 上找到了答案:

“sz"代表"zero-terminated string”(以零结尾的字符串)。这个命名约定源于:

  1. C/C++中的字符串默认以空字符’\0’结尾
  2. “sz"是"string zero"的缩写
  3. 这种命名法属于匈牙利命名法的一种应用

So many books,so little time

© 2025 huanjian's blog

🌱 Powered by Hugo with theme Dream.

Me

你好,我是火箭。火箭是我在在公司和互联网上使用的花名。 我的主要工作是开发 Windows 客户端软件,技术栈以 WPF + C# 为主。业余时间会折腾一些小项目,通常是 React + FastAPI 的组合,先现生活在杭州,活动范围主要是江浙沪这块。独立博客看得多了,也逐渐被激发了表达欲,注册域名,做了我的独立博客。

爱好
  • 三国演义:从大二开始听评书版的《三国演义》,现在主要是作为睡前小故事来听(我估计是第七八遍了)
  • 写代码:没错,写代码也是我的爱好。只要出门超过半天,我基本都会背着笔记本,随时可能进入“编码模式”。
  • 健身:曾经的爱好。结婚之后就逐渐被抛弃了 🤷,结婚一年涨了10斤。
  • 看电影:后续可能会写影评。
  • 探索新事物和工具:准备开一个主题,专门分享我接触到的各种新玩意儿。
记录什么?
  • 学习笔记

  • 一些想法:记录日常思考,不一定有结论,更像是一种随手的表达。

  • 旅游与随笔:旅行时的见闻与感受,以及偶尔的文字随笔。