From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 20 May 2024 23:37:50 +0300 From: Vladislav Zavjalov To: devel@lists.altlinux.org Message-ID: <20240520203750.GA4067@imap.altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.10.1 (2018-07-13) Subject: [devel] =?koi8-r?b?09TSwc7OwdEg0NLPwszFzcEg0yBnY2M/?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 May 2024 20:37:50 -0000 Archived-At: List-Archive: List-Post: Всем привет! Локализовал какую-то странную проблему в C коде, не понимаю, это проблема с моим пониманием С или с компилятором. Код ниже: число печатается кусочками по два байта. Это перестает работать при компиляции с -O2 или -O3. Воспроизводится с gcc version 13.2.1 20240128 (ALT Sisyphus 13.2.1-alt3) --- #include #include int main(){ uint32_t v1 = 0x12345678; uint32_t v2 = 0; for (int i=0; i<2; ++i) printf("%x\n", ((uint16_t*)&v1)[i]); return 0; }