C의 표준과 C++의 표준 [anonymous union]

vani2의 이미지

안녕하세여

실제로 쓰일일은 거의 없겠지만..
그냥 단순한 궁금증으로 인해 질문드립니다.

anonymous union인 경우는 C++의 표준에 포함되어있지 않고 C11의 표준에 포함 되었을텐데, 다음 코드를 g++과 vc2013에서 실험해 보았는데 두 컴파일러 모두 정상적으로 작동되네요.

제가 알기론 C와 C++의 표준은 완전히 다르다고 알고있는데, C++이 C표준의 기능을 흡수하거나 그러는 건가요?

아니면 이건 그냥 확장기능의 일부인가요?
그런데 C99의 기능인 VLA는 vc에선 작동하지 않네요..
이를 보아선 C와 C++은 완전히 분리된 서로다른 언어로 보이는데..

설명 부탁드립니다..

vani2의 이미지

실수로 '다음코드'를 올리지 않았네요.. 이런

static union
{
int a, b;
};

익명 사용자의 이미지

이 사람이 절대로 하려 하지 않는게 두가지 있다.

검색, 그리고 생각

쉽게 찾을 수 있는 질문에 대한 답을 매번 일일이 질문으로 올리고 있다.

vc에서 anonymous union이 확장으로 들어가 있는지 아닌지 찾아보는게 그렇게 어려운가?
gcc에서 anonymous union이 확장으로 들어가 있는지 아닌지 찾아보는게 그렇게 어려운가?
vc에서 C99와 C11을 지원하는지 아닌지 찾아보는게 그렇게 어려운가?

이 사람에 대한 답변은 완벽히 시간낭비이다.
이 사람에게 당신은 그저, 편리한 검색엔진일 뿐.

vani2의 이미지

지적 감사합니다.

먼저. 제가 질문 표현력이 떨어지는 것은 인정합니다.
제 고질적인 문제였으나 오랫동안 고쳐지지 않은 것 역시 사과드립니다.

그리고 적어도 제가 검색을 잘 못하는 것 일 수는 있어도 안하는것은 아닙니다.

질문을 수정하자면 비주얼 스튜디오와 gcc에서 anonymous union이 지원하는지에 대해서 질문한 것이 아니라 실험해보니 c와 c++ 둘 다 지원하는데, C++ 표준으로 있다는 말은 들어본적이 없고, C11에만 있는 걸로 알고있었는데 실제로 사용해보니 일반 C++ 컴파일러에서도 정상적으로 들어가 있길래 anonymous union이 실제로는 c++표준에 이미 있는 내용인지에 대해서 질문한겁니다.

아무리 찾아도 안나오길래 그런겁니다.

vani2의 이미지

답변 감사합니다.

하지만 이건 제가 원하는 내용이 아닙니다.

C++에선 anonymous union이 지원하는지 안하는지, 언제부터 지원하는지 찾는건데..

C11내용 밖에 없더군요.
그래도 지금은 다행히도 문서를 찾았습니다.
제가 게을렀던것 같군요.

불의를 끼쳐드려 죄송합니다.

dontdieych의 이미지

5분만에 찾을 줄 몰라서 혹은 너무 오래 걸려서 이런 곳에 질문하는 것 아닙니까?

갈 길 가시면 되지 왜 엉뚱한 데다가 침을 뱉고 가시는 지 모르겠네요. 애초에 검색어 몇 가지 알려 주시거나 지금 처럼 링크 걸어 주시면 될 것을 왜 비비 꼬아서 질문 하신 분도 기분 안 좋고 당신도 기분이 좋을리는 없고 지나가는 행인도 눈살이 찌푸려지는 이런 광경을 만드시나요?

5분만에 찾은 그것도 애초에 누군가 거기다 질문을 했으니까 답변이 거기 있는거 아닙니까?

kukyakya의 이미지

+1

익명 사용자의 이미지

그렇게 생각을 하시는 분이라면 왜 답변은 안해주세요?
답변 다는건 어렵고 남 공격하는건 쉽지.
말만 번지르르...

jick의 이미지

-1

dontdieych의 이미지

전혀 모르는 얘기라 답변 안 달았습니다. 뭐 잘못했나요?

익명 사용자의 이미지

저 stackoverflow 링크 단 사람인데, 저 위에 비비꼰 사람 아닙니다. 오해하지 마세요.
하지만 plusb님의 질문 태도에 대해서는 문제가 있다고 생각하는 사람입니다.
이전 질문들에 달린 답글을 보시면 그렇게 생각하는 분들이 꽤 있습니다. 그럴만 합니다.
제 답변에 대한 답글만 봐도 그렇습니다.
질문하신 내용에 대한 대답이 거기에 없다고 하시는데
plusb님이 질문하신 내용에 대한 답이 거기에 있습니다.
자세한 해설과 그 해설에 대한 반론/답변까지 있습니다.
plusb님이 제대로 읽지 않으신게지요.

말 나온 김에 plusb님께 짧게 요약해드리지요.
anonymous union은 c++03표준입니다.
anonymous struct는 c++11표준이 아닙니다.
하지만 "Practically speaking" 대부분의 컴파일러가 지원합니다.

"C++이 C표준의 기능을 흡수하거나 그러는 건가요?"에 대한 답변도 저 링크에 있습니다.
VLA이야기 하셨지요? 그 이야기도 저기에 있습니다.

dontdieych의 이미지

저도 KLDP 게시판에 올 때마다 제발 글 좀 안봤으면 하는 몇몇 아이디가 있습니다. 폭언이나, 스팸성의 글을 올리는 사용자는 아닙니다. 그렇다면 오히려 신경을 안쓰겠죠. 포럼 관리자 분에게 신고하면 끝날 일이니까요. 그 분과 다투거나 한 것도 아닙니다. 전혀 모르는 사이죠. 근데 그 사람 글 올라온 것을 보면 짜증부터 확 납니다. 왜 그런지 모르겠습니다. 그냥 그 사람 글을 보면 한 숨 나오고 뒷통수 한 대 치고 싶고 그런 기분이 됩니다.

제가 어떻게 해야 할까요? 솔직히 여기 포럼 기능 중에서 특정 사용자의 글과 그에 대한 댓글 모두를 차단하는 기능이 있었으면 좋겠습니다. 걍 눈에서 안보이면 끝이니까요. 근데 그 기능이 없습니다. 그럼 어떻게 해야 합니까?

저도 딱히 방법은 없지만 익명으로 비꼬는 글 던지고 가는 게 좋은 방법 같지는 않습니다. 이런 방식의 공격이 용납되는 분위기가 정착이 되면 결국 마녀사냥이 됩니다.

틀렸다고 생각하는 부분이 있으면 짚어서 지적 하시고 애매하면 그냥 지나 갑시다.

vani2의 이미지

제가 문서를 휴대전화로 찾는 습관이 있어서 stackoverflow의 덧글들을 잘 안보고 지날칠때가 많습니다.

계속 지나치면서 잊고있었는데 이번일로 확대해서라도 자세히 보게 되었습니다.

감사합니다.

익명 사용자의 이미지

KLDP에 대해서 점점 회의를 느끼는 사람으로서..
저도 보기 싫은 아이디가 몇개 있습니다..

그런분들 공통점은 굉장히 고급(?) 기능에 대한 질문을 한다는 것입니다.
말씀하신대로 "실제로 쓰일일은 거의 없겠지만 그냥 단순한 궁금증" 으로
질문을 하는데, 그런 호기심은 물론 좋은 것입니다만,

막상 소소한 부분에 대한 지식을 살펴보면,
아주 기본적인 것도 모르거나, 잘못 알고 있는 경우가 많습니다.

이런 상태에서 아주 섬세한 부분을 이해하고자하니,
선입관에 따라 객관적인 사실을 주관적으로 오해하는 경우가 많기도 합니다.

단순한 궁금증을 풀기위해 질문하고 답변으로 공부하다보니,
막상 복잡한 설명이 따르면 자기가 알고 싶은데까지만 받아들이고,
나머지는 그냥 무시해버려서 정작 중요한 것을 놓치거나,
잘못알거나하는 경우가 많은 것 같습니다.

단순한 궁금증은 취미생활이니 스스로 해결하시고,
실전에 꼭 필요한 것 위주로 질문하시는 것이
좋은 질문 방법을 배우는데 도움이 될 것 같습니다.

vani2의 이미지

그렇군요, 제가 생각해봐도 그런점에서 많은걸 간과한 것 같습니다.

참고하겠습니다.

댓글 달기

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