c璇█涔媋ssert()鍑芥暟鎬庝箞浣跨敤
assert()鍑芥暟鏄疌璇█鏍囧噯搴?<assert.h> 涓殑涓€涓畯锛岀敤浜庡湪绋嬪簭涓彃鍏ユ柇瑷€銆?/p>
鏂█鏄▼搴忓憳鍦ㄧ紪鍐欎唬鐮佹椂鐢ㄤ簬妫€鏌ョ▼搴忕殑閫昏緫閿欒鐨勪竴绉嶆柟娉曘€傚畠鐢ㄤ簬妫€鏌ユ煇涓潯浠舵槸鍚︿负鐪燂紝濡傛灉鏉′欢涓哄亣锛岄偅涔堢▼搴忎細绔嬪嵆缁堟锛屽苟杈撳嚭閿欒淇℃伅銆?/p>
assert()鍑芥暟鐨勪娇鐢ㄦ柟娉曞涓嬶細
#include <assert.h>
void assert(int expression);
assert()鍑芥暟鎺ュ彈涓€涓〃杈惧紡浣滀负鍙傛暟锛屽鏋滆琛ㄨ揪寮忕殑鍊间负0锛堝嵆鍋囷級锛屽垯鏂█澶辫触锛岀▼搴忎細缁堟锛屽苟杈撳嚭涓€鏉¢敊璇秷鎭埌鏍囧噯閿欒杈撳嚭娴侊紙stderr锛夈€?/p>
閫氬父鍦ㄧ紪鍐欎唬鐮佹椂锛屼綘鍙互鍦ㄩ€傚綋鐨勪綅缃彃鍏?code>assert()鍑芥暟鏉ユ鏌ユ煇涓潯浠舵槸鍚︽弧瓒筹紝渚嬪锛?/p>
#include <stdio.h>
#include <assert.h>
int divide(int a, int b) {
// 妫€鏌ラ櫎鏁版槸鍚︿负0
assert(b != 0);
return a / b;
}
int main() {
int a = 10;
int b = 0;
int result = divide(a, b);
printf("Result: %d\n", result);
return 0;
}
鍦ㄤ笂闈㈢殑渚嬪瓙涓紝assert(b != 0)鐢ㄤ簬妫€鏌ラ櫎鏁版槸鍚︿负0锛屽鏋滀负0锛屽垯绋嬪簭浼氱珛鍗崇粓姝紝骞惰緭鍑洪敊璇秷鎭?quot;Assertion failed: b != 0"鍒版爣鍑嗛敊璇緭鍑烘祦銆傛敞鎰忥紝assert()鍑芥暟鍙湪璋冭瘯妯″紡涓嬭捣浣滅敤锛屽嵆鍦ㄧ紪璇戞椂闇€瑕佸惎鐢ㄨ皟璇曟ā寮忥紙渚嬪浣跨敤-g閫夐」杩涜缂栬瘧锛夋墠浼氱敓鏁堛€傚湪鍙戝竷鐗堟湰涓紝assert()鍑芥暟浼氳瀹忓畾涔変负绌猴紝涓嶄細璧蜂綔鐢ㄣ€?/p>
鎬荤粨涓€涓嬶紝assert()鍑芥暟鐢ㄤ簬鍦ㄧ▼搴忎腑鎻掑叆鏂█锛岀敤浜庢鏌ユ煇涓潯浠舵槸鍚︿负鐪燂紝濡傛灉鏉′欢涓哄亣锛岀▼搴忎細绔嬪嵆缁堟锛屽苟杈撳嚭閿欒淇℃伅鍒版爣鍑嗛敊璇緭鍑烘祦銆傛敞鎰忥紝鍦ㄧ紪鍐欎唬鐮佹椂锛屼粎鍦ㄩ€傚綋鐨勪綅缃娇鐢ㄦ柇瑷€锛屽苟涓斿湪鍙戝竷鐗堟湰涓叧闂柇瑷€浠ユ彁楂樼▼搴忕殑鎬ц兘銆?/p>
相关问答