logo

CuriousTab

CuriousTab

Discussion


Home C Programming Structures, Unions, Enums Comments

  • Question
  • If a char is 1 byte wide, an integer is 2 bytes wide and a long integer is 4 bytes wide then will the following structure always occupy 7 bytes?
    struct ex
    {
        char ch;
        int i;
        long int a;
    };
    


  • Options
  • A. Yes
  • B. No

  • Correct Answer
  • No 

    Explanation
    A compiler may leave holes in structures by padding the first char in the structure with another byte just to ensures that the integer that follows is stored at an location. Also, there might be 2extra bytes after the integer to ensure that the long integer is stored at an address, which is multiple of 4. Such alignment is done by machines to improve the efficiency of accessing values.

  • Structures, Unions, Enums problems


    Search Results


    • 1. It is not possible to create an array of pointer to structures.

    • Options
    • A. True
    • B. False
    • Discuss
    • 2. A structure can contain similar or dissimilar elements

    • Options
    • A. True
    • B. False
    • Discuss
    • 3. one of elements of a structure can be a pointer to the same structure.

    • Options
    • A. True
    • B. False
    • Discuss
    • 4. Bit fields CANNOT be used in union.

    • Options
    • A. True
    • B. False
    • Discuss
    • 5. A union cannot be nested in a structure

    • Options
    • A. True
    • B. False
    • Discuss
    • 6. Can we have an array of bit fields?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 7. size of union is size of the longest element in the union

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 8. Can a structure can point to itself?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 9. If the following structure is written to a file using fwrite(), can fread() read it back successfully?
      struct emp
      {
          char *n;
          int age;
      };
      struct emp e={"CuriousTab", 15};
      FILE *fp;
      fwrite(&e, sizeof(e), 1, fp);
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 10. Is there easy way to print enumeration values symbolically?

    • Options
    • A. Yes
    • B. No
    • Discuss


    Comments

    There are no comments.

Enter a new Comment