From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=nbiSoMozFJ9FRveOyW2Wgz04bQiG4QlIJj9sUo0wkWU=; b=aq3SCxGzDcKofHWZJjzQpp2Xent8rbLSB74cgdZLxyJtRoGaIVFFHBas+JskrN3zWl aDdoqjZ+Ooq4F2IzpBub/WY+rfuiLYGne86J/nf7MU21ezixx7ytV6YXSHA4AJVgKciQ g7w1s7fWnuSQHXWmm+NgDQeCDf1dSt69jlcX1R91ykNSfqekSEQpzFlCnhRTO0lf6Sr2 pXNIJmOpRXN6VZQu/WlcWubNgpV9uA/Q6M8CVh6fcH5aRuF7cl742GfV9NLo7xrjOVVe ejnKAoZ9lSGDAOBSH3huBrjp9uQgPxVK7pZHqqXTi+ScH/WFEfy8r5irBtb1ArVXGxOq 8LxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=nbiSoMozFJ9FRveOyW2Wgz04bQiG4QlIJj9sUo0wkWU=; b=MQm7QUlmOQrnayVHkn81qZBx2uIcmMy544X1VSMyMKPTpGCJA9s8rx8LttXyHAAhrc ajrdFGrNDhrtX5LILRvDtJ9vWRkJwlxolT/Y6Q6QgqLfXRlrhmEZWoZSjxkYXpDHsXFW k2qAsHB+lXXgFl4eyhU/LahGzG/PJiWd7+uExkyWGM2ATzEkEr4JtbSFpgqYxvFvtynS V0EhOaeFvamI41AsGVtlqcUeEwvrxK5PkX4ML38hb6ifyPk+pXNk37a6wNqJ0DB2FURv vTwWF5zlWREiDNKWHw7eMcC86T3ILotAfr07HVkCD5qDnLeA7ku1eyWiXOUrgx6IeKbi VY5g== X-Gm-Message-State: AHQUAubJF0+LN7EkbOP+FefeVOwU8en3JkLHRcWkQsF+TreMKvFeDAln 3oPUdXHD84kzluoNYnpiFRkHhwho X-Google-Smtp-Source: AHgI3IYqRSjaNgthxypvzkwoQeNQxpW5Zs+VbYpvAJvYGkOa/a5+U24LMUgQIwpO7yxcSsR2T/W+zg== X-Received: by 2002:a2e:9dda:: with SMTP id x26mr4962122ljj.53.1550927374907; Sat, 23 Feb 2019 05:09:34 -0800 (PST) To: devel@lists.altlinux.org References: <5d1faa4c-f21b-047b-b8e9-27d28109f0b0@altlinux.org> <20190221132501.GQ10173@altlinux.org> <42f17a50-affe-4c54-99ad-88502a65854f@gmail.com> <0116bbf4-9a04-9ff3-819f-729b785a3bb1@gmail.com> <20190223012117.79c39033@sem-notebook> <8caf2604-0d15-08c4-5e1a-672fad601818@gmail.com> <20190223125520.GT10173@altlinux.org> From: Leonid Krivoshein Message-ID: <8816c549-8fbe-3312-d308-c72bcfd4d982@gmail.com> Date: Sat, 23 Feb 2019 16:08:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20190223125520.GT10173@altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?bWVtY3B5INCz0LvRjtGH0LjRgiAo0LjQu9C4INGPINC9?= =?utf-8?b?0LUg0YPQvNC10Y4g0LXQs9C+INCz0L7RgtC+0LLQuNGC0Ywp?= 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: Sat, 23 Feb 2019 13:09:37 -0000 Archived-At: List-Archive: List-Post: 23.02.2019 15:55, Alexey V. Vissarionov пишет: > On 2019-02-23 15:28:44 +0300, Leonid Krivoshein wrote: > > >>> void-указателями такого не проделаешь, в отличие от gcc, который > >>> тоже >>> ни один стандарт могёт. > >> Я не понял этой фразы и сравнения указателей с gcc. При чем тут > >> указатель на void? Размер объекта в этом случае не известен, > >> разумеется арифметика не работает. > > Арихметика работает независимо от. Например, конструкцию вида > > void *x; int y = x[1]; > > компилятор пошлет по азимуту, и правильно сделает. Но при этом > > void *x; int y = x+123; > > не вызовет у компилятора никаких эмоций А по-моему здесь будет ворнинг. Но можно проверить. > и превратится (на писюшатине) > в самый обычный lea. Почему? Потому что это обычное сложение, а как > потом будет использоваться результат - уже забота не компилятора, а > программиста. > > Если что, я такие конструкции регулярно использую, когда пишу для > контроллеров. В любом случае я бы такие рисковые конструкции не использовал. > > Вы прибавляете к адресу целое число, которое является чем? > > Разницей в адресах или индексах? > > sizeof(void) - это сколько? :-) Вчера было 1 (для gcc). Но тогда это ответ неверный. Потому что, согласно стандарту, разница должна быть в индексах, а не в байтах. И согласно ему же результат такого сложения с void* не определён. А в gcc это будет эквивалентно char* + int. -- Best regards, Leonid Krivoshein.