Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. What is the size of an integer?

What is the size of an integer?

Scheduled Pinned Locked Moved C / C++ / MFC
questionc++comdata-structures
18 Posts 10 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S sunit5

    size of int is OS dependent never say die

    Z Offline
    Z Offline
    Zdeslav Vojkovic
    wrote on last edited by
    #5

    actually, it is not OS dependent, but implementation dependent. standard states that sizeof(int) >= sizeof(short), and short is at least 16 bits. so, for different compilers, sizeof(int) can be different even on the same OS.

    P D 2 Replies Last reply
    0
    • Z Zdeslav Vojkovic

      actually, it is not OS dependent, but implementation dependent. standard states that sizeof(int) >= sizeof(short), and short is at least 16 bits. so, for different compilers, sizeof(int) can be different even on the same OS.

      P Offline
      P Offline
      Prakash Nadar
      wrote on last edited by
      #6

      and they are also processor dependent but not too much though. -Prakash -Prakash

      V 1 Reply Last reply
      0
      • P Prakash Nadar

        and they are also processor dependent but not too much though. -Prakash -Prakash

        V Offline
        V Offline
        vikas amin
        wrote on last edited by
        #7

        Processor dependent ????? :confused: Vikas Amin Embin Technology Bombay vikas.amin@embin.com

        P T 2 Replies Last reply
        0
        • V vikas amin

          Processor dependent ????? :confused: Vikas Amin Embin Technology Bombay vikas.amin@embin.com

          P Offline
          P Offline
          Prakash Nadar
          wrote on last edited by
          #8

          Well to understand this u need to know how softwares are dependent on hardware (processor) generally the integer size is the size of word size of the processor, for 80386 onwards the word size is 32 bit and hence the integer size in most of the OS on Intel machine is 32bit. Why the size of integer varies from compiler to compiler/OS 2 OS, because integer is the most used datatype and transfering a 32bit of data from the memory to processor is more efficient than other sized data. -Prakash -Prakash

          1 Reply Last reply
          0
          • S sunit5

            size of int is OS dependent never say die

            V Offline
            V Offline
            vikas amin
            wrote on last edited by
            #9

            Probably i would preffer to say implementation dependent then processor dependent . :cool: Vikas Amin Embin Technology Bombay vikas.amin@embin.com

            P 1 Reply Last reply
            0
            • V vikas amin

              Processor dependent ????? :confused: Vikas Amin Embin Technology Bombay vikas.amin@embin.com

              T Offline
              T Offline
              ThatsAlok
              wrote on last edited by
              #10

              vikas amin wrote:

              Processor dependent ?????

              In continuation with Mr. Prakash.. if you see := sizeof(long)==sizeof(int) in windows enviornment

              "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

              cheers, Alok Gupta VC Forum Q&A :- I/ IV

              1 Reply Last reply
              0
              • V vikas amin

                Probably i would preffer to say implementation dependent then processor dependent . :cool: Vikas Amin Embin Technology Bombay vikas.amin@embin.com

                P Offline
                P Offline
                Prakash Nadar
                wrote on last edited by
                #11

                vikas amin wrote:

                Probably i would preffer to say implementation dependent then processor dependent .

                yes but the implementation is dependent on the processor. :)


                -Prakash

                S 1 Reply Last reply
                0
                • Z Zdeslav Vojkovic

                  actually, it is not OS dependent, but implementation dependent. standard states that sizeof(int) >= sizeof(short), and short is at least 16 bits. so, for different compilers, sizeof(int) can be different even on the same OS.

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #12

                  Zdeslav Vojkovic wrote:

                  ...sizeof(int) can be different even on the same OS.

                  Do you have a valid example of such? I've never seen an int that varied in size on the same machine.


                  "Take only what you need and leave the land as you found it." - Native American Proverb

                  G 1 Reply Last reply
                  0
                  • D David Crow

                    Zdeslav Vojkovic wrote:

                    ...sizeof(int) can be different even on the same OS.

                    Do you have a valid example of such? I've never seen an int that varied in size on the same machine.


                    "Take only what you need and leave the land as you found it." - Native American Proverb

                    G Offline
                    G Offline
                    Gary R Wheeler
                    wrote on last edited by
                    #13

                    This goes back a bit in time, but... In Microsoft C 6.0 (MS-DOS era), an int was 16 bits. Watcom C 9.0, on the same machine, made an int to be 32 bits. The Microsoft target in this case was 16-bit real-mode MS-DOS while the Watcom target was 32-bit protected mode MS-DOS.


                    Software Zen: delete this; // [Fold With Us!](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx)[[^](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx "New Window")]

                    D 1 Reply Last reply
                    0
                    • G Gary R Wheeler

                      This goes back a bit in time, but... In Microsoft C 6.0 (MS-DOS era), an int was 16 bits. Watcom C 9.0, on the same machine, made an int to be 32 bits. The Microsoft target in this case was 16-bit real-mode MS-DOS while the Watcom target was 32-bit protected mode MS-DOS.


                      Software Zen: delete this; // [Fold With Us!](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx)[[^](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx "New Window")]

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #14

                      But was it a true 32-bit int? That's like saying we have a 64-bit int today, but only because Microsoft's compiler mashes two 32-bit ints together, simulating a bigger one.


                      "Take only what you need and leave the land as you found it." - Native American Proverb

                      G 1 Reply Last reply
                      0
                      • D David Crow

                        But was it a true 32-bit int? That's like saying we have a 64-bit int today, but only because Microsoft's compiler mashes two 32-bit ints together, simulating a bigger one.


                        "Take only what you need and leave the land as you found it." - Native American Proverb

                        G Offline
                        G Offline
                        Gary R Wheeler
                        wrote on last edited by
                        #15

                        Actually it was. The 80386 processors and their descendents included direct 32-bit arithmetic and pointer support. The Watcom compiler supported protected mode execution with a flat memory model for a variety of DOS extenders. A "DOS extender" basically provided an execution environment for a protected mode application in the MS-DOS environment.

                        DavidCrow wrote:

                        Microsoft's compiler mashes two 32-bit ints together

                        Hmm. Is that still the case? I was under the impression that __int64 support since VS.NET 2002 was provided directly by native instructions.


                        Software Zen: delete this; // [Fold With Us!](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx)[[^](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx "New Window")]

                        D 1 Reply Last reply
                        0
                        • G Gary R Wheeler

                          Actually it was. The 80386 processors and their descendents included direct 32-bit arithmetic and pointer support. The Watcom compiler supported protected mode execution with a flat memory model for a variety of DOS extenders. A "DOS extender" basically provided an execution environment for a protected mode application in the MS-DOS environment.

                          DavidCrow wrote:

                          Microsoft's compiler mashes two 32-bit ints together

                          Hmm. Is that still the case? I was under the impression that __int64 support since VS.NET 2002 was provided directly by native instructions.


                          Software Zen: delete this; // [Fold With Us!](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx)[[^](http://www.codeproject.com/script/profile/whos_who.asp?msg=1307432&id=10338#xx1307432xx "New Window")]

                          D Offline
                          D Offline
                          David Crow
                          wrote on last edited by
                          #16

                          Gary R. Wheeler wrote:

                          Is that still the case?

                          I'm not sure since I only use VC++ v6.

                          Gary R. Wheeler wrote:

                          I was under the impression that __int64 support since VS.NET 2002 was provided directly by native instructions.

                          Even on processors that do not a have 64-bit bus?


                          "Take only what you need and leave the land as you found it." - Native American Proverb

                          1 Reply Last reply
                          0
                          • P Prakash Nadar

                            vikas amin wrote:

                            Probably i would preffer to say implementation dependent then processor dependent .

                            yes but the implementation is dependent on the processor. :)


                            -Prakash

                            S Offline
                            S Offline
                            segment_fault
                            wrote on last edited by
                            #17

                            The most important thing to do is to always use the "sizeof" operation in any code you're referring to. Never, ever hardcode the size into your code. When reading/writing to a file - there are exceptions -- in general, avoid using "int" as a type when it comes to storage of data structures. Instead, define types such as DWORD, WORD, BYTE, etc. This will save you a lot of trouble down the road. Read more of what I have to say at http://directx9.blogspot.com/

                            P 1 Reply Last reply
                            0
                            • S segment_fault

                              The most important thing to do is to always use the "sizeof" operation in any code you're referring to. Never, ever hardcode the size into your code. When reading/writing to a file - there are exceptions -- in general, avoid using "int" as a type when it comes to storage of data structures. Instead, define types such as DWORD, WORD, BYTE, etc. This will save you a lot of trouble down the road. Read more of what I have to say at http://directx9.blogspot.com/

                              P Offline
                              P Offline
                              Prakash Nadar
                              wrote on last edited by
                              #18

                              segment_fault wrote:

                              The most important thing to do is to always use the "sizeof" operation in any code you're referring to. Never, ever hardcode the size into your code. When reading/writing to a file - there are exceptions -- in general, avoid using "int" as a type when it comes to storage of data structures. Instead, define types such as DWORD, WORD, BYTE, etc. This will save you a lot of trouble down the road.

                              yes i know that.


                              -Prakash

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups