❶ c語言錯誤:expected '{' at end of input
錯誤原因:
1、某一個函數或者變數沒有在使用之前聲明。
2、某個地方少了個括弧。(並不一定是編譯器指出錯誤的地方,這種情況,編譯器一般會在最後一行代碼報錯,但錯誤很可能不在最後一行,要靠自己去找出來)
解決方法:
結尾處應當expected '}' 或者報 unexpected '{'.
但無論怎樣,是說花括弧的配對有問題。
可以用添加 /* 和 添加 */ 的 方法,把某些程序塊 註解 出去,檢查余留部分,看哪裡多了或少了花括弧。
頭文件部分也要查,有些頭由於宏配對問題會造成花括配對錯。
注意事項
pthread_cleanup_push()帶有一個"{",而pthread_cleanup_pop()帶有一個"}",因此這兩個函數必須成對出現,且必須位於程序的同一級別的代碼段中才能通過編譯。在下面的例子里,當線程在"do some work"中終止時,將主動調用pthread_mutex_unlock(mut),以完成解鎖動作。
work"中終止時,將主動調用pthread_mutex_unlock(mut),以完成解鎖動作。
pthread_cleanup_push(pthread_mutex_unlock, (void *) &mut);
pthread_mutex_lock(&mut);
/* do some work */
pthread_mutex_unlock(&mut);
pthread_cleanup_pop(0);
必須要注意的是,如果線程處於PTHREAD_CANCEL_ASYNCHRONOUS狀態,上述代碼段就有可能出錯,因為CANCEL事件有可能在pthread_cleanup_push()和pthread_mutex_lock()之間發生,或者在pthread_mutex_unlock()和pthread_cleanup_pop()之間發生,從而導致清理函數unlock一個並沒有加鎖的mutex變數,造成錯誤。
因此,在使用清理函數的時候,都應該暫時設置成PTHREAD_CANCEL_DEFERRED模式。
❷ 為什麼Xilinx ISE軟體中的System Generator與Matlab關聯了還提示找不到路徑
要在system generator 中打開