V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 11 页 / 共 172 页
回复总数  3427
1 ... 7  8  9  10  11  12  13  14  15  16 ... 172  
225 天前
回复了 xJogger 创建的主题 发音 GUI 的三种读法
@geelaw #24 更正一下… gēi wū yī 是更“接地气”的说法,严格来说是 gê wu yi (gê̄ wū yī)。
225 天前
回复了 xJogger 创建的主题 发音 GUI 的三种读法
汉语读法是 gēi wū yī,见拉丁字母的汉语读音规定(即汉语拼音名称音)。
225 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
@xuelang #18 汉语“决议”是“会议所确定的较重大的事项”的意思,在计算机技术方面应该理解为复杂的选择过程,比如“重载决议”是可接受的说法,因为要根据形参列表和实参列表从多个可能的选项里根据一系列不那么直接的规则选出最合适的。链接里的 symbol resolution 的 resolution 应该译作“解析”,因为这个过程只是简单地查找符号的定义,不存在复杂的规则。
怎么确定是系统结束了进程,还是进程结束了自己?你试过 try catch 了吗? allDevs.max_size() 是多少?
225 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
@xuelang #15 链接并不能用来挑选(“决议”) A 的这个定义或那个定义,A 自始自终都只有一个定义。
226 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
满足 ODR 的程序,如果同一个名字在多个翻译单元里有定义,那么任意可达的定义都是等价的,因此可以随便选(比如第一个赢)。

随便选最有意义的作用是模板,因为每个使用了某个模板的翻译单元必须包含那个模板的完整定义(需要 SFINAE 和 name lookup ),不能让模板声明在 .hh 里实现在 .cc 里。

更早的时候链接时优化还不流行,因此内联( C++ 意义的 inline )函数可以促进函数在编译时被内联(优化意义的 inline )。

链接并不是“决议”工具。
226 天前
回复了 xuelang 创建的主题 C++ C++ 链接符号决议 -- 自以为懂了,结果...
无论是看代码还是问 ChatGPT 却不查证都是非常糟糕的学习方法,第一步应该是理解 C++ 标准是如何规定的。

文章里无论是 int sum(int, int) 还是 class Demo 都是非常严重的 ODR violation 。

在 [basic.def.odr]/14 里规定了 (14.1) 非内联非模板函数在多个翻译单元中有定义时 (14) 程序不良,且在非模块中无需报错,这适用于 sum 的情况。

在 [basic.def.odr]/14 里规定了 (14.2) 多个翻译单元中有定义的 class 如果不满足 (14.4) 在所有可达的翻译单元中定义是相同的记号( token )序列,则 (14) 程序不良,且在非模块中无需报错,这适用于 class Demo 的情况。

至于某个具体的编译器、链接器产生的什么行为,不过是巧合罢了。
227 天前
回复了 LuckyPocketWatch 创建的主题 C++ 如何判断一个 double 有几位?
建议重新思考你的设计。因为 IEEE-754 双精度数里面 0.000001 等于 0.000000999999999999999954748111825886 ,你希望传入这个数的时候得到 6 还是 7 ?
@thisismr2 #3 描述不是很清楚,比如谁是攻击者、攻击者有哪些能力(即达到何种安全性)。
最简单的场景:C 可以把 K 告诉 D ,然后 D 把 K 告诉 S 。
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #47 接续 #50 ,假设数组前面一切可读取的虚拟内存都是 ' ',且假设指针加减运算未定义行为的实现就是访问这些虚拟内存,那么这个程序会因为把 start 减到不可读的虚拟内存地址之后继续读 start 而访问违规,从而崩溃。
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #47 假设编译器不检查内存,并且数组前面全是空格呢?

另外这个 while 循环写得可以说是乱七八糟了。
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #38

int a[1];
a + 0; // OK
a + 1; // OK
a - 1; // 未定义行为
a + 2; // 未定义行为

和 (a-1)、(a+2) 有没有被解引用没有任何关系。见 C++ 标准 [expr.add]/4:

When an expression J that has integral type is added to or subtracted from an expression P of pointer type, the result has the type of P.
(4.1) If P evaluates to a null pointer value and J evaluates to 0, the result is a null pointer value.
(4.2) Otherwise, if P points to an array element i of an array object x with n elements ([dcl.array]), the expressions P + J and J + P (where J has the value j) point to the (possibly-hypothetical) array element i+j of x if 0≤i+j≤n and the expression P - J points to the (possibly-hypothetical) array element i−j of x if 0≤i−j≤n.
(4.3) Otherwise, the behavior is undefined.

注意 4.2 要求表达式的结果指向数组对象或者数组末尾之后,不允许数组开头之前。
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #31 C++ 不存在变长数组,所以 int n; scanf("%d", &n); int a[n]; 是完全错误的,即使 n 输入的是 1 也是错误的。
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk #30 所以你对 char s[25] = "长度为 30 的字符串长度为 30 的字符串"; 出错有什么异议呢?

另外 s 以空格开头的时候,在

while (start > s) {
flag = 0;
while (*start == ' ') start--;

这段代码里面会把 start 减到 s 之前,这也是未定义行为。

https://gist.github.com/GeeLaw/47dea7677eb48e1b9896bfe9d006b5f4
229 天前
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
请问楼主期待这段代码发生什么?

int a[1];
a[0] = 1;
a[1] = 2;

用超长字符串初始化不够长的字符数组的效果和上面差不多。另外楼主并不是忘了改下标,而是忘了改长度,这是两个不同的概念。

另外 char s[] = "..."; char s2[strlen(s) + 1]; 不是合法的 C++ 代码,没有拒绝编译已经很给面子了。
@dearxe2v #2 这种归约式论证不成立。

考虑 A 使用 B 的公钥加密刚刚通过键盘输入的数据,此时加密算法的随机数和明文并不来自于磁盘,如果使坏者得到了此随机数,则此密文丧失安全性,A 当然希望在加密算法运行完毕后从内存里删除随机数和明文。

另外,内存可能是主动发给外界,而不是被窃听的,例如调试崩溃记录的时候,当然希望内存转储里敏感信息越少越好。

题外话:RSA 加密已经不怎么实用了,主要是安全性弱带来的性能问题。
我应该提示一下使用托管代码写密码算法是不宜在生产中使用的,因为无法精准控制密钥何时从内存中删除(垃圾回收算法可能会随意搬动和复制内存数据,所以仅仅是清空或覆写数组是无意义的)。
233 天前
回复了 sseven 创建的主题 程序员 接口设计合理性讨论
当然是删除传入 del=1 合理,否则只要有两个客户端并发保存数据就很容易发生踩踏事件。

两个客户端可能只是开了另一个窗口,或者离开窗口很久之后忘记,重新打开,并在一年之后回到原来的窗口。
没看懂整个工作流程,你是在 Visual Studio Code 里面打开了网络共享文件夹,还是用了 VSC 的某种远程工程,还是在本机通过远程桌面等协议操作运行在远程计算机上、打开远程计算机上的本地文件夹的 VSC ,还是怎么样之类的?

第一段“都是在远程服务器上工作”听来是远程桌面到服务器( VSC 在远程计算机上运行)的意思,但是后面“发现电脑休眠了”好像又是说 VSC 在本地计算机上运行(因为我假设是办公室的客户机休眠,而不是服务器休眠)。
237 天前
回复了 Funian 创建的主题 强迫症 电子洁癖如何继续生活?
什么叫“打开文件系统”?文件系统是操作系统提供的抽象,没有打开关闭之说。

第二点感觉不是“洁癖”可以描述的,看起来是比较严重的“强迫症”。如果非常严重应该看医生,网上求医问药效果不好。
1 ... 7  8  9  10  11  12  13  14  15  16 ... 172  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2392 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 13:26 · PVG 21:26 · LAX 06:26 · JFK 09:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.