GCC개발자쪽에서 #import구문을 그리 좋아하지는 않나요?

siabard의 이미지

요즘 objective-c를 공부하고 있습니다. gcc를 이용해서 공부하고 있는데 뉴스그룹에서 이런저런 포스팅을 보다가 아래와 같은 말이 있더군요..

Quote:

> List.m:1:2: warning: #import is obsolete, use an #ifndef wrapper in the
> header file List.m: In function `+[ new]':
This is because the main author of gcc (Stallman) doesn't like #import.

코딩 일관성 때문에 그랬는지.. 아니면 예전에 NextStep무슨 껄끄러운 문제라도 있었는지.. 궁금하네요..

관련된 뉴스그룹 포스팅이나 문서 아시는 분 있으시면 알려주시면 고맙겠습니다.

[/]
ageldama의 이미지

http://mail.gnu.org/archive/html/discuss-gnustep/2003-07/msg00103.html

Quote:

...#import obviously was an early attempt to make compiles faster (less files to open) but showed more drawbacks than advantages, later. Nowadays headers are precompiled anyway (Apple now, GNU soon). There is no advantage in using #import at all....

...라는군요.
그리고 다른 게시물들은 대부분 #ifndef ... #define ... #endif식으로 guard(맞나요?)을 붙이라고 하는거 같네요.
(영어가 짧아서;)

단순히 warning을 안나오게 하시려면

Quote:
-Wno-import in ADDITIONAL_OBJCFLAGS
라고도 써있군요.

----
The future is here. It's just not widely distributed yet.
- William Gibson

chunsj의 이미지

Objective-C를 아시는 분을 만나니 반갑네요 :-)

일단 Apple도 이제 이걸 없앨 예정이라고 합니다. 그리고 #import가 있었던
것은 전통적으로 ObjC에서 이것을 사용해 왔기 때문입니다만 문제가 좀
있었습니다. 일단 다른 위치라도 같은 이름이면 서로 다른 파일이 같이
import가 안된다거나, Symbloic Link에서의 문제(물론 둘다 않좋은
습관이긴 하지만...) 등의 기술적인 문제도 있고, 말씀하신 약간의 정치적인
이유도 결합되고 해서(특정 언어를 위한 자동 Preprocessor processing에
대한 거부감등...) 3.4인가 그 이후인가에는 아예 없앨 것이라고 합니다.

siabard wrote:
요즘 objective-c를 공부하고 있습니다. gcc를 이용해서 공부하고 있는데 뉴스그룹에서 이런저런 포스팅을 보다가 아래와 같은 말이 있더군요..
Quote:

> List.m:1:2: warning: #import is obsolete, use an #ifndef wrapper in the
> header file List.m: In function `+[ new]':
This is because the main author of gcc (Stallman) doesn't like #import.

코딩 일관성 때문에 그랬는지.. 아니면 예전에 NextStep무슨 껄끄러운 문제라도 있었는지.. 궁금하네요..

관련된 뉴스그룹 포스팅이나 문서 아시는 분 있으시면 알려주시면 고맙겠습니다.

[/]

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.