Интонационное ударение

Я тут на днях вынужден был сильно удивиться, узнав, что некоторые люди не знают о существовании интонационного ударения. Я о нём узнал в школе, на обычном уроке русского языка и считал частью школьной программы, а вот поди ж.

Интонационное ударение ставится, чтобы указать место, где в речи мы выделили бы слово интонацией. В стихотворении Лермонтова о Бородине есть строчки:

Вам не видать таких сражений!..
Носились знамена, как тени,
В дыму огонь блестел,
Звучал булат, картечь визжала,
Рука бойцов колоть устала,
И ядрам пролетать мешала
Гора кровавых тел.

Фраза «рука бойцов колоть устала» ушла в народ и её, не зная контекста, можно прочитать двояко: чья-то рука устала колоть бойцов («рука бойцо́в колоть устала»), либо у бойцов рука устала колоть («рука́ бойцов колоть устала»).

В скобках у меня как раз интонационное ударение, от обычного оно отличается не графически, а местом использования. Если перед вами не словарь и не детская книжка и на обычном слове стоит ударение в привычном месте, то оно интонационное.

Помимо устранения неоднозначностей, подобных вышеописанному, интонационное ударение так же используется для усиления: нейтральное «что я сказал?» можно усилить до «что́ я сказал?», а в нём сместить акцент: «что я́ сказал?», «что я сказа́л?».

3 комментария

Структуры и CGO

Обновление: в комментариях в Фейсбуке мне бывший коллега попенял, что я забыл Си и что поведение правильное — тут объявляется анонимная структура, а потом к ней определяется тип. Верно, практики на Си у меня за последние годы почти не было, вымылось всё из памяти. Так что текст ниже читайте с учётом этого обновления заметки.

Три одинаковых смайлика с большими глазами и высунутым языком, расположенные в ряд.

Каждый раз расстраиваюсь, когда сталкиваюсь с CGO. Идея-то прекрасная — встраивать в программы на Гоу сишные библиотеки почти без программирования на Си. Но частности всё убивают. То нельзя функцию по указателю передать, то вот убил час с утра сегодня, пытаясь починить ошибку в своей библиотеке go-gd.

Документация говорит нам, что сишные структуры доступны в Гоу через конструкцию C.struct_name, а её размер — через C.sizeof_struct_name.

Я так и пытался сделать и получал ошибки:

package main

/*
typedef struct {
    int x, y;
} test;
*/
import "C"
import . "fmt"

func main() {
    Println(C.struct_test{}) // «{}»? Что за…
    Println(C.sizeof_struct_test) // could not determine kind of name for C.sizeof_struct_test
}

Упрощённый код выше кратко иллюстрирует проблему. В первом случае никакая ошибка не выводится (что ещё больше сбивает с толку), но структура почему-то пустая. Во втором случае компилятор выдаёт ошибку, но от этого не легче — при конфликте моих знаний с документацией как правило думаю, что права документация, потому около часа пытался понять где я тут умудрился накосячить.

Оказывается, и я набрёл на это случайно, в ходе экспериментов, struct просто не надо писать, тогда всё будет работать:

Println(C.test{}) // «{0 0}»
Println(C.sizeof_test) // 8

Если будет время, ещё поизучаю этот вопрос — посмотрю историю коммитов и всё такое, возможно была какая-то движуха, которую не отразили в документации, либо просто что-то сломали. Надеюсь кому-нибудь сэкономлю время этой заметкой.

Оставить комментарий