lisp中符號的型別是symbol,乙個符號就是這一型別的值.符號和整數其實差不多,只不過乙個是數字表示的乙個可以用字母表示.
* (type-of 'aaa)
symbol
*
相同的符號總是eq的
* (eq 'a 'a)
t
乙個符號可以同時繫結到變數 函式 類上,
cl-user> (find "a" (map 'list #'symbol-name (loop for s being the symbol collect s)) :test #'string=)
nilcl-user> (setf a "ddd")
; in: setf a
; (setf a "ddd")
; ==>
; (setq a "ddd")
; ; caught warning:
; undefined variable: a
; ; compilation unit finished
; undefined variable:
; a
; caught 1 warning condition
"ddd"
cl-user> (find "a" (map 'list #'symbol-name (loop for s being the symbol collect s)) :test #'string=)
"a"cl-user> (boundp 'a)
tcl-user> (defun a () ())
acl-user> (fboundp 'a)
tcl-user> (defclass a () ())
#cl-user> (find-class 'a)
#
但結構和類不能繫結到同乙個符號上
cl-user> (defstruct a x y)
acl-user> (defclass a () ())
; evaluation aborted on #" >.
cl-user>
強符號和弱符號
在c語言中,函式和初始化的全域性變數 包括顯示初始化為0 是強符號,未初始化的全域性變數是強符號。關於多個強弱符號定義型別不一致的主要有下面三種情況 1.兩個或兩個以上強符號型別不一致 2.有乙個強符號,其他都是弱符號 3.兩個或兩個以上弱符號型別不一致 對於情況一,編譯會報符號重定義錯誤。mapa...
C 強符號和弱符號
1 不允許強符號被多次定義,也即不同的目標檔案中不能有同名的強符號 如果有多個強符號,那麼鏈結器會報符號重複定義錯誤。2 如果乙個符號在某個目標檔案中是強符號,在其他檔案中是弱符號,那麼選擇強符號。3 如果乙個符號在所有的目標檔案中都是弱符號,那麼選擇其中占用空間最大的乙個。在 gcc 中,可以通過...
指標符號 和取址符號
之前對 和 符號一直理解的比較淺顯。只知道 p好像表示的是乙個指標 p表示的是乙個位址。然而這次當遇到了下面這個情況的時候 int a 10 int b a printf d n a printf d n a printf d n b printf d n b 結果 10 6487620 64876...