Лучшие практики для объявления C [закрытый] код

Лучшее решение для того, чтобы все выглядело так, как того хочет большинство людей, - это использование анонимной функции:

alert('start');
var a = 'foo';
//lots of code
setTimeout(function(){  //Beginning of code that should run AFTER the timeout
    alert(a);
    //lots more code
},5000);  // put the timeout here

Это, вероятно, самое близкое к тому, что просто делает то, что вы хотите.

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

19
задан 3 revs, 3 users 100% 15 February 2018 в 10:20
поделиться

10 ответов

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

И что интересно, это работает, даже когда я действительно не знаю, что делает функция. Например, я никогда раньше не сталкивался с emalloc (), но мой мозг все еще подсказывает мне, что это утверждение (вероятно) делает.

Если по какой-то причине (война? Национальная безопасность?) Я прочитал что-то вроде:

 d->d_name = estrdup(name);

по телефону я бы сказал:

"вещь, на которую указывает d_name d члену присваивается результат вызывая estrdup с именем как параметр "

Но это подчеркнуто не то, что происходит в моей голове, когда я читаю код.

3
ответ дан 30 November 2019 в 03:29
поделиться

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

10
ответ дан 30 November 2019 в 03:29
поделиться

Я произношу это так:

d = emalloc(sizeof(*d));

dee equal ee malloc size of star dee

d->d_name = estrdup(name);

dee arrow dee underscore name equal ee stretch dupe name "

Но я бы не стал называть никаких этого передового опыта. Я не произносю круглые скобки, за исключением случаев, когда они могут быть неоднозначными, например, с приоритетом оператора. Я произносю почти все остальные пунктиры. На самом деле я читаю == как «равно равно»

9
ответ дан 30 November 2019 в 03:29
поделиться

Я не являюсь носителем английского языка, но я вижу, что именно эти термины используются чаще всего:

'=' - assign to
'==' - equals
d->d_name member of a struct
&d - address of d
& - bitwise and
&& - logical and (or just "and" for short)
*d - dereference d, or in case of *d = x "assign x to what is being pointed by d"

Что касается вашего примера:

d = malloc(sizeof(*a));

Выделить (malloc) объем памяти, равный размер того, на что указывает a, и присвоить результат d.

d->d_name = estrdup(name);

Назначить члену d_name d значение, возвращаемое вызовом estrdup с именем в качестве параметра.

5
ответ дан 30 November 2019 в 03:29
поделиться

I normally use the word/group of words in which are already used for the C syntax elements if i need to pronounce/read aloud the C code-

e.g.

*d = value at memory address in d

d->d_name = value at memory address pointed at some offset from base address in d (this value could be a integral value or another address value!)

&d = memory address of value d

x=y = value of x updated and changed with value in y.

x == y =compare value of x with value of y

When i was doing this i found that 'pronouncing' following C language constructs would be tricky/interesting:

union
{
  int a;
float b;
}

function pointers,

typecasts,

-AD.

2
ответ дан 30 November 2019 в 03:29
поделиться

Хм, никогда не думал об этом раньше.

Слова и идентификаторы я просто произносю так, как они написаны.

Что касается символов, я не думаю, что существует жесткое правило. Если оператор произносится так, как написано, имеет смысл, то я делаю это. Например, == я бы произнес как равный равный. Здесь нет двусмысленности, и для большинства программистов все идет по порядку.

Операторы вроде ->, хотя я бы сказал просто доступ к членам. Сказать «тире больше чем» правильно, но я предполагаю, что получу несколько забавных взглядов.

1
ответ дан 30 November 2019 в 03:29
поделиться

Я не носитель английского языка и не зачитываю код, но вот как я d сделать это:

= -> равно
== -> равно
& -> побитовое и
&& -> и
& d -> адрес

Я бы прочитал * d, d-> d_name, d.d_name как "d" / "d d_name", как должно быть ясно из контекста.

1
ответ дан 30 November 2019 в 03:29
поделиться
 d = emalloc(sizeof(*d));

dee равняется ee malloc sizeof star dee

 d->d_name = estrdup(name);

dee ref dee name равно ee desire dup name

 if ( d -> d_name == NULL )

если dee ref имя dee равно null

или

, если dee ref имя dee равно нулю

1
ответ дан 30 November 2019 в 03:29
поделиться

Я обычно объявляю "=" и "==" как "равно".

Тут небольшая двусмысленность, так как я очень редко использую "=" в контексте, где используется его результат , или "==" в контексте, где его результат не используется. Если бы первое возникло, возможно, в коде, который я читал, но не писал, я мог бы сказать «если одно равно b», или «для i равно j точка с запятой i одно равно j точка с запятой плюс- плюс к. Я надеюсь, что это не ошибка ".

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

Если бы я диктовал много кода (например, парное программирование), тогда я ' d обычно ожидает прочитать его в том виде, в каком он был напечатан, поэтому любые ошибки могут быть обнаружены. Если моя двусмысленность часто сбивала с толку машинистку и тратила время зря, то я ожидал, что сразу же согласую соглашение. Намного проще, чем когда-либо формировать консенсус среди всех программистов C / C ++ / Java / C # в мире.

1
ответ дан 30 November 2019 в 03:29
поделиться

ИМО, вот лучший способ прочитать следующее (что касается PHP):

= "(сейчас) установлено в"

== "(сейчас) равно"

=== "(сейчас) идентично"

  • Вызов = "установлен в" помогает избежать его неправильного использования.
  • Слово «сейчас» необязательно, но напоминает новичкам в программировании (вроде меня) о динамической природе значений.
2
ответ дан 30 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: