long int int 차이점

i2ft의 이미지

int 는 컴퓨터의 처리 방식에따라 다른 범위를 지니게됩니다(한번연산할떄 읽어들이는 값의범위)

16비트 컴퓨터 int =16

32비트 컴퓨터 int =32

64비트 컴퓨터 int =32

long 과 int 가 크기가 같은데 존재하는이유 =>

16비트 시절 16비트int로 사용햇던 값들을

32비트 로넘어와 그대로 int로 사용하기위해

typedef int= long int

와같이 가독성작업을위해 필요햇기떄문

(16비트시절 long int ->32비트);

64비트 컴퓨터의 int가 그대로 int인이유 => 아직 많은컴퓨터들이 32비트를 기본처리방식으로 사용하고있기떄문

64비트 컴퓨터가 대중화가된다면 int=64비트로바뀔것

이라고 이해하고있습니다.

틀렷다면 댓글좀

익명 사용자의 이미지

http://www.unix.org/version2/whatsnew/lp64_wp.html

이 문서가 도움이 될지도 모르겠네요.

pchero의 이미지

Int 나 char, double 과 같은 자료형의 크기는 OS가 아니라, 컴파일러에 따라 변경이 된다고 알고 있었습니다.
찾아 보니 이런게 있네요..

http://stackoverflow.com/questions/589575/size-of-int-long-etc

The C++ standard does not specify the size of integral types in bytes, but it specifies minimum ranges they must be able to hold. You can infer minimum size in bits from the required range and the value of CHAR_BIT macro, that defines the number of bits in a byte (in all but the most obscure platforms it's 8).

One additional constraint for char is that its size is always 1 byte, or CHAR_BIT bits (hence the name).

---------------------------------
제일 왼쪽이 저입니다 :)

익명 사용자의 이미지

하드웨어 OS 컴파일러 모두가 영향을 줍니다.

minspapa의 이미지

위에 답글처럼 하드웨어에, OS, 컴파일러에 따라 다른 문제로 인하여.. 쉬운문제는 아니죠..

만약 i2ft님 말대로 되려면, 64bit 체계의 int는 8byte로 한다. 라는 표준이 있어야할텐데요..

C언어 표준을 보면, 각각의 자료형에 따른 타입이 몇 바이트라고 정해진게 아니라,

short<=int<=long<=double 과 같은식으로 되어 있습니다.

하드웨어, OS, 컴파일러마다 차이가 발생할 가능성이 많기 때문에 그렇지 않나 싶네요.

다른 얘긴데, 같은 64bit라도, 윈도우에선 포인터변수의 크기가 4byte인 반면, osx에서는 8byte로 나온답니다.

익명 사용자의 이미지

int 와 같은 primitive type 의 경우 컴파일러 마다 기본 사이즈가 다르기때문입니다. 표준에서는 최소값에 대해서 정의하고 있지 반드시 int 는 32bit 혹은 64bit 라고 정의하지 않은것으로 기억합니다.

그래서 bit 단위가 정말 중요할 경우에는 uint32_t 혹은 int64_t 와 같이 고정된 type 을 사용하는 것이 안전합니다.

pajaebeo의 이미지

댓글 달기

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