cnbatch 最近的时间轴更新
cnbatch

cnbatch

V2EX 第 576172 号会员,加入于 2022-03-20 22:20:14 +08:00
今日活跃度排名 11883
根据 cnbatch 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
cnbatch 最近回复了
23 小时 27 分钟前
回复了 8675bc86 创建的主题 Visual Studio Code 在 Windows 和 Mac 间切换使用 VSC
Ctrl+F 无法默认搜索?

请问 OP 是不是想讲 CTRL+SHIFT+F 这个搜索?
@aqtata 哈哈哈,这是 Eric Allman 风格,原版的 Allman Style 缩进就是 Tab

我长期用 C# ,习惯了 Allman 缩进方式
https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions#style-guidelines

C# 用空格缩进,到了 C++我就索性使用原版 Allman 缩进风格
1 天前
回复了 slideclick 创建的主题 C++ 市面上大部分 c++程序员都在 c++98 水平吧?
@slideclick 网络 Proxy 类的工具( 2022 年开始做的),需要在 Windows 使用,还需要照顾 BSD 系列,这种情况下 C++是最优解

尤其是 BSD ,全部自带 C/C++编译器,用 C++就不需要额外安装其他编译器工具链,哪怕为了在某些 BSD (例如 NetBSD )使用 C++新版本引入了高版本编译器,也就改改编译参数的事
@nmap 我记得 2022 年,ASIO 开始支持协程。刚看了下 Github 和作者自己写的 Examples ,应该是在 2021 年 12 月的 1.22.0 开始支持的:
https://think-async.com/Asio/asio-1.22.0/doc/asio/examples.html
https://github.com/chriskohlhoff/asio/tree/asio-1-22-0

我现在才开始用算是有点晚,当然这也是为了等待编译器更新以及作者修 bug
ASIO 最新版(目前是 1.30.2 )用起来还算顺畅
@billccn 或许,特殊机器可以特殊对待,比如以编译器 extension 的形式去处理。
假设“标准状况”下,char: 8-bit, short: 16-bit, int: 32-bit, long: 64-bit
那么开启 extension 就无视标准规定,按照机器的硬件手册内容去做。

如果硬件级别无法支持“假设的标准状况”,那就强制必须使用 extension 模式。

当然啦,这都是马后炮了,我有这种想法(强制开启 extension )主要是因为知道 Linux 内核源码长期以来大量使用编译器扩展模式。微软编译自家系统时应该也是这样( MSVC 也有自己的 extension )。对于 20 世纪 80 年代的标准制定者而言,可能都预料不到编译器 extension 会用得满天飞。
@moudy 早期 C 语言可没有 typedef 这种做法,有人提到这么一句——
there is no "typedef" in early C
出处: https://news.ycombinator.com/item?id=13441621
@cnbatch 勘误一下,DP-7 的一个 Word (当时的最小操作单位)是 18 比特(不是字节)

补充一个:IBM 的“锅”也不小,DEC 之所以这么设计,可能是受到 IBM 的影响(毕竟要跟 IBM 竞争)。PDP-1 诞生前的 IBM 机器,字长就是 36-bit ,这里有发展史可以看:
https://en.wikipedia.org/wiki/Word_(computer_architecture)

1970 年之前的硬件操作数长度标准简直乱作一团
要甩锅那得甩给早期计算机的制造公司,尤其是 DEC

UNIX 是在 PDP-7 开发出来的,而 PDP-7 的一个 Word (当时的最小操作单位)是 18 字节:
https://gunkies.org/wiki/PDP-7

在 C 语言诞生的那个年代,既有 PDP-11 ( C 语言初版诞生的平台),使用现在大家熟知的 16bit / 32bit / 64bit 操作方式;也有 PDP-12 ,使用的是 12-bit ,以现在的标准来看够奇怪吧。

如果当时直接定死了各个基础类型的宽度,那么想要做源码级移植就麻烦多了。

就像如此简单的代码:

int number = 12;
printf("Number: %d\n", number);

int 是 18-bit 还是 12-bit ,又或者是 16-bit ,都由目标机器的编译器自己决定,在当时来看显然是很省事的。

发明人哪能预料到后来会统一为 8 / 16 /32 / 64 bit 标准呢

---------------

当然啦,ANSI / ISO 也有部份责任,第一个 ANSI C 标准制定的年代,已经是 8 / 16 /32 / 64 bit 标准的时期了,完全可以区分得更清晰一些,比如这样:

int 必须比 short 宽,long 必须比 int 宽

可惜标准只规定了最低限度,搞得后来不同系统的 int 和 long 都一塌糊涂。到了 C99 就只能用 macro 打补丁。
几乎都可以吧,比如 Google AI Studio 同样可以提前预设提示词

LM Studio 运行本地 LLM 也能提前预设提示词
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3419 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 11:24 · PVG 19:24 · LAX 04:24 · JFK 07:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.