간단한 코드 이해??? 이건 무슨 뜻인지??

escalix의 이미지

1. 앞의 (void)는 왜 붙이죠?
(void)::sigaction(SIGPIPE, &act, NULL);

2. 뜬금없게 :: 은 무슨 뜻인지?
::kill(sChildPID, sig);

3. extern은 알겠는데 "C"로 해서 뭘 뜻하는지?
extern "C" {
typedef int (*EntryFunction)(int input);
}

4. (void(*)(...)) 이런 난해한 코드? 그리고 (...)이건 정말 뭐하는 녀석인지?
act.sa_handler = (void(*)(...))&sigcatcher;
act.sa_handler = (void(*)(int))&sigcatcher;

5. exit도 알겠는데 왜 앞에 :: 인지?
::exit(-1);

6. pid도 알겠는데 ::를 붙여야 하는지..값이 전달되는것 같은데?
pid =::wait(&status);

------------------내용 추가-----------------------------------

7. 정말 마지막 질문 그럼 "..." 이렇게 마침표가 세개 찍은 것은 무엇인지?

int qtss_printf(const char*fmt, ...)
{
xxx
xxx
xxx

return result;
}

--------------------------------------------------------------

tiffang의 이미지

:: 은 c++ 에 있는 scope 연산자 입니다.

클래스내에 같은 이름의 kill 함수가 있을 경우
그냥 kill 하면 클래스내의 kill 함수가 호출 되니까
전역 함수인 kill 을 호출 하기 위해서 ::kill 합니다.

extern "C" 는 링커가 해당 함수를 C 함수로 링크하게 하는 겁니다.
c++ 컴파일러로 컴파일되는 코드에 있는 함수를 C 에서 호출할라면 저렇게 해야 합니다.

4번은 함수 포인터 입니다. C language 찾아보시면 금방 나옵니다.

익명사용자의 이미지

1. 함수나 수식의 void type casting은 해당 함수나 수식의 결과 값을 무시하겠다는 선언이라고 합니다. sigaction() 함수의 결과값을 어떠한 변수에도 대입하지 않겠다고 명시적으로 표시한 것으로 보시면 될 듯 합니다.

7. ...은 인자의 갯수가 가변이라는 뜻입니다. 이 선언을 사용하는 대표적인 예가 printf() 함수인데요 printf에는 인자를 몇개를 쓰든지 관계없이 처리가 되는 것을 볼 수 있을 겁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.