Glibc common: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
(Created page with "== Overview == GNU C library 내용 정리 == assert.h == 컴파일 시, -DNDEBUG 옵션을 함께 사용하면 assert() 관련 함수들이 동작하지 않는다. 조심할...")
 
Line 12: Line 12:
*/
*/
</pre>
</pre>
mysql 라이브러리 연동시, mysql_config --cflag 옵션을 함께 사용하는 경우가 많다. 그런데 개발 환경에 따라서 -DNDEBUG 옵션이 추가되는 경우가 있다. 조심해야 한다.
<source lang=bash>
$ mysql_config --cflags
-I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing    -g -DNDEBUG
</source>


=== assert() ===
=== assert() ===

Revision as of 22:30, 11 July 2016

Overview

GNU C library 내용 정리

assert.h

컴파일 시, -DNDEBUG 옵션을 함께 사용하면 assert() 관련 함수들이 동작하지 않는다. 조심할 것.

/* 
   void assert (int expression);

   If NDEBUG is defined, do nothing.
   If not, and EXPRESSION is zero, print an error message and abort.  
*/

mysql 라이브러리 연동시, mysql_config --cflag 옵션을 함께 사용하는 경우가 많다. 그런데 개발 환경에 따라서 -DNDEBUG 옵션이 추가되는 경우가 있다. 조심해야 한다. <source lang=bash> $ mysql_config --cflags -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG </source>

assert()

<source lang=c>

  1. include <assert.h>

void assert(scalar expression); </source> Expression 의 내용이 false 일 경우, 코어 덤프 생성 후, 프로그램을 종료한다.