原文:C語言拾遺(五):分析switch語句機制---下篇

想要深入地理解語言的運行機理,閱讀匯編代碼是很有幫助的。 前奏:我們這里用的匯編代碼格式是AT T的,這個微軟的intel格式不一樣。 AT T格式是GCC,OBJDUMP等一些其他我們在linux環境下常用工具的默認格式。 今天就一起再來看看switch語句吧。 關鍵詞:跳轉,跳轉表 先來一個最簡單的例子: 看一下其匯編代碼:我會逐條注釋。 命令是gcc O S test .c 好了,對着注釋看 ...

2013-04-19 22:25 6 1204 推薦指數:

查看詳情

C語言拾遺

1. 沒C++那么惡心的const C語言中的const修飾符用於修飾一個變量是const屬性的。被C語言的const修飾的變量具有只讀屬性,並且不能被修改。 const修飾的變量 != 常量,const修飾的變量雖然不能別修改,但是和常量還是有本質的區別的。 在定義const類型 ...

Fri Feb 28 03:33:00 CST 2014 13 1236
C語言拾遺——inttypes.h

  今天偶然間看到這個頭文件inttypes,好奇有什么用,去找度娘玩了一波,發現這頭文件挺有意思的。   這個頭文件適配於C99標准,它提供整數輸入的各種進制轉換的宏,這是在Ubuntu上扣下來的代碼(windows里我沒找到放在哪)嗯~ o(* ̄▽ ̄*)o我拿VScode找到了……所以划掉 ...

Thu Jan 09 22:37:00 CST 2020 2 1125
ConcurrentHashMap 擴容分析拾遺

前言 這是一篇對 transfer 方法的拾遺,關於之前那篇文章的一些一筆帶過,或者當時不知道的地方進行回顧。 疑點 1. 為什么將鏈表拆成兩份的時候,0 在低位,1 在高位? 回顧一下 transfer 的相關代碼: 關鍵看上面注釋的代碼,如果 runBit 是 0,那么就設置在低位 ...

Sun May 20 07:27:00 CST 2018 0 1727
半年拾遺

慚愧,上一篇blog發表時間是12年8月份,現在已經13年2月份了。唉... 此處省略1w字。 半年有余,blog一直閑置了。但是閑置並不代表忘記。時不時還是會敲開cnblogs的域名胡亂逛逛。馬上 ...

Wed Feb 06 23:27:00 CST 2013 17 8476
gevent拾遺

  在前文已經介紹過了gevent的調度流程,本文介紹gevent一些重要的模塊,包括Timeout,Event\AsynResult, Semphore, socket patch,這些模塊都涉及當前協程與hub的切換。本文分析的gevent版本為1.2 Timeout ...

Tue Feb 14 02:37:00 CST 2017 0 2360
閉包拾遺 & 垃圾回收機制

閉包拾遺    之前寫了篇《閉包初窺》,談了一些我對閉包的淺顯認識,在前文基礎上,補充並且更新些對於閉包的認識。   還是之前的那個經典的例子,來補充些經典的解釋。   這里並沒有在outerFn內部修改全局變量,而是從outerFn中返回了一個對innerFn的引用。通過調用 ...

Fri Jun 12 17:48:00 CST 2015 1 3200
[VB.NET Tips]Select Case語句拾遺

正常的Select 語句如下: 也可以比較數值范圍,確定數值范圍的兩個值用關鍵字To連接。如果Select表達式在這個范圍中,則執行該Case語句。 如果需要相等以外的比較方式,則可以在Case關鍵字之后使用Is關鍵字,然后加上比較運算符和表達式,這樣就會按指定的方式進行比較 ...

Sun Aug 04 07:00:00 CST 2019 0 653
Linux命令拾遺-使用blktrace分析io情況

原創:打碼日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。 簡介 一般來說,想檢查磁盤I/O情況,可以使用iostat、iotop、sar等,但這些命令只能做一個整體 ...

Sun Mar 27 04:41:00 CST 2022 1 4394
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM