作者查詢 / AstralBrain
作者 AstralBrain 在 PTT 全部看板的留言(推文), 共441則
限定看板:全部
看板排序:
3F推: B不是address啊 他就是那個array04/24 13:36
7F推: 看你要不要分清楚 "是指標" 和 "可以轉型成指標"04/25 22:29
8F→: 這兩件事, 當然如果你覺得當成一樣的比較好理解也是04/25 22:30
9F→: 可以04/25 22:30
7F推: 1)不會 2)會,QByteArray在toLocal8Bit()那行結束的時04/21 17:41
8F→: 候就destruct掉了04/21 17:41
11F推: toLocal8Bit()會生一個暫時物件(QByteArray)出來04/21 18:02
12F→: 沒搞錯的話這邊會copy一份 然後馬上被destruct04/21 18:03
13F→: messages指到的是一塊被free掉的memory04/21 18:03
15F推: 啊 正確來說不是copy, 是encode04/21 18:08
17F→: 總之不會跟QString共用空間04/21 18:09
22F推: -lpthread (x) -pthread (o)03/17 12:06
3F推: 不call c()的話a()和b()就不會變嗎01/29 18:11
4F推: while (!a()) { if (b()) c(); } ? 我想的是這樣01/29 18:13
5F推: 先確認一下01/29 18:30
6F→: a=true => break, (a,b)=(false,true) => call c01/29 18:31
7F→: (a,b)=(false,false) => loop 這會卡死?01/29 18:31
8F→: 我有理解錯嗎01/29 18:31
12F推: 看起來b()根本可以假設永遠是true01/29 18:49
13F→: 一變false就再也沒機會call到c了 不要看它比較好 XD01/29 18:50
14F推: while(!a()){c();remain...} 就可以01/29 18:53
15F→: 如果b有side-effect再隨便找個地方放01/29 18:54
12F推: 樓上正解 XD 看起來下午真的是兩小時一班車12/28 15:33
8F推: 書上寫的ignores the name是個不夠精確的說法12/08 13:25
9F→: 實際上在它的scope裡面都有效,而且有時候真的會用到12/08 13:27
10F→: 例如說 auto add(T a, T b) -> decltype(a + b);12/08 13:28
11F推: compiler不會忽略a, b這兩個變數名12/08 13:31
12F→: 是說你可以不寫, 但是只要寫了compiler就會去看12/08 13:32
13F推: declarator 是定義在 c++ grammar 裡面的一個東西12/08 13:35
14F→: 簡單來說, int x = 0, y[100]; void foo(int z);12/08 13:36
15F→: 裡面的 x y[100] foo(int z) 叫做 declarator12/08 13:37
17F推: 啊, 因為 stackoverflow 那串讓我以為你在問 c++12/08 16:24
18F→: 忽略那行吧 XD12/08 16:24
31F推: 以 amd64 來說, 浮點數 w 會進 xmm0 register10/27 21:30
32F→: 然後 printf 從沒使用的 rdi 讀一個整數, 所以是什麼10/27 21:31
33F→: 值都有可能10/27 21:31
35F推: 啊對... 忘了有 format string10/29 06:08
7F推: 看你在看什麼語言的spec, 一般人認為的constant可能10/26 18:34
8F→: 會跟spec定義的不太一樣10/26 18:34
9F→: 例如說在c spec裡面, const int a = 3;的 a 不是10/26 18:35
10F→: constant10/26 18:35
11F推: 寫 enum {X = a}, compiler會對這個a有意見10/26 18:38
12F→: 但是在一般人的定義裡面a是個constant10/26 18:39
5F推: 看起來你需要的是with statement10/19 17:28
22F推: 正常來說,return 0出去外面還是要有人call release()10/20 00:06
23F→: python style就會變成stucode寫的main()那樣10/20 00:07
24F→: 外面用完回到context manager做release10/20 00:08
25F→: 所以這樣就ok了10/20 00:08
35F推: with 也可以不用那麼多層啊10/20 13:24
36F→: with init1(), init2(), init3(): do_something()10/20 13:25
37F→: 當然如果每個init中間都還要做點其他事就沒辦法了10/20 13:25
5F推: 那你希望int x = *VACANT; 的x的值是多少10/10 13:45
6F→: 未初始化的垃圾值? 這樣跑到後面會出現更多問題10/10 13:45
7F→: 還不如在一開始直接死10/10 13:45
8F→: 如果等號左邊是複雜的c++ class那更無解了10/10 13:47
9F推: 所以其實你要的不是VACANT, 而是對void做各種運算..?10/10 13:53
10F→: 那 int *ptr = (int*)VACANT; 會發生什麼事10/10 13:55
11F推: 其實我想問的是你允不允許VACANT轉型成其他指標 XD10/10 14:06
12F→: 如果允許的話就回到我一開始的問題10/10 14:06
13F→: *(int*)VACANT 要segfault還是要NOP10/10 14:07
14F→: segfault => 跟null有87%像, nop => 跑到後面更慘10/10 14:08
15F推: 實作好處理 問題是要怎麼限制vacant只能write-only10/10 14:23
16F推: 現在你要的功能應該可以用c++自己做一個出來10/10 14:25
17F→: 在smart pointer外面再包一層之類的10/10 14:26
18F→: 可以先自己試用看看 XD10/10 14:26
45F推: 仔細一想反正你只是要一塊write-only的垃圾位址10/10 22:22
46F→: 那 void* vacant = new char[4096]; 就好啦 XD10/10 22:22
47F推: 是不是真的nop也不是很重要10/10 22:25