在C 語言中,表達式是最重要的組成部分之一,幾乎
所有的代碼都由表達式構成。表達式的使用如此廣泛,讀
者也許會產生這樣的疑問,像+ 、- 、3 、/ 、& & 這樣簡單
的運算也會出現問題嗎? 程序員在編寫表達式時,往往帶
有一些不良的習慣。即使是編寫很簡單的表達式,這些不
良習慣也可能造成隱患,這個小小的隱患甚至可能引起整
個系統的崩潰。實際上,在程序調試過程中,表達式中存
在的大部分隱患皆來源于程序員的主觀臆測,即認為表達
式應該是按自己認為的方式執行,但結果可能完全相反。
這是因為程序設計語言或編譯器的某些內在機制并不如
我們所想的那樣。所有的編譯器都遵從這一假定:程序員
都是“神”,他們既了解編程語言的各種特性,也了解編譯
器本身一些鮮為人知的處理原則。當然, 程序員不是
“神”。因此,程序員在編寫程序的過程中需要小心地避免
編譯器“設置”的各種陷阱,而問題是有些時候很難預測下
一步是否會踏上一個陷阱
標簽:
表達式
語言
分
代碼
上傳時間:
2015-09-08
上傳用戶:jennyzai
% 文件名:randlsbget.m
% 程序員:余波
% 編寫時間:2007.6.25
% 函數功能: 本函數將完成提取隱秘于上的秘密信息
% 輸入格式舉例:result=( scover.jpg ,56, secret.txt ,2001)
% 參數說明:
% output是信息隱藏后的圖象
% len_total是秘密信息的長度
% goalfile是提取出的秘密信息文件
% key是隨機間隔函數的密鑰
% result是提取的信息
function result=randlsbget(output,len_total,goalfile,key)
ste_cover=imread(output)
ste_cover=double(ste_cover)
% 判斷嵌入信息量是否過大
[m,n]=size(ste_cover)
frr=fopen(goalfile, a )
% p作為信息嵌入位計數器將信息序列寫回文本文件
p=1
% 調用隨機間隔函數選取像素點
[row,col]=randinterval(ste_cover,len_toal,key)
for i=:len_toal
if bitand(ste_cover(row(i),col(i)),1)==1
fwrite(frr,1, bit1 )
result(p,1)
else
fwrite(frr,0, bit1 )
result(p,1)=0
end
if p==len_total
break
end
p=p+1
end
fclose(frr)
標簽:
randlsbget
result
scover
2007
上傳時間:
2015-11-10
上傳用戶:yzhl1988