有一個結構體DateTime:
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
根據書本上的所說的“位元組對齊的規律“,我是這么計算它的大小的:
4byte+(4+5+5+6+6)*bit=32+26=58*bit
7*8*bit=56<58<8*8=64*bite------>得到8byte.
故sizeof()計算出為8,
在xocde中列印出來的確如此。
涉及到匿名位域如下:
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int :0;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int :0;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
你的書本知識比較老吧,32位機器和你說的根本就對不上int 就32bit了 也就是你說的4byte,硬體知識離開對應的硬體環境說不清楚了
uj5u.com熱心網友回復:
哦,我這臺應該是64位的機子-(2.3 GHz 雙核Intel Core i5,Mac OS catalina);int型別的確是4(sizeof的計算結果)。
uj5u.com熱心網友回復:
我用的是Xcode
uj5u.com熱心網友回復:
64位機器,你跑的是32位的應用,他是按照32位計算的,所以int 是4byte 32bit
uj5u.com熱心網友回復:
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int :0;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
你的書本知識比較老吧,32位機器和你說的根本就對不上int 就32bit了 也就是你說的4byte,硬體知識離開對應的硬體環境說不清楚了
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int :0;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
你的書本知識比較老吧,32位機器和你說的根本就對不上int 就32bit了 也就是你說的4byte,硬體知識離開對應的硬體環境說不清楚了
struct DateTime
{
unsigned int year;
unsigned int month:4;
unsigned int day :5;
unsigned int :0;
unsigned int hour :5;
unsigned int minute:6
unsigned int seconde:6;
}DateTime;
眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......
值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......