Что означает «ctx»?

#c #abbreviation

Вопрос:

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

Например, здесь:

 static int reformat_string(void * ctx, const unsigned char * stringVal,  
                       size_t stringLen)  
{  
    yajl_gen g = (yajl_gen) ctx;  
    return yajl_gen_status_ok == yajl_gen_string(g, stringVal, stringLen);  
}  
 

Насколько я могу судить, он обычно используется для конструкций.

Комментарии:

1. Во время рефакторинга некоторого фрагмента кода Java я изменил имя переменной ctx , на context которое возникли некоторые вопросы у рецензента. «Разве ctx недостаточно ясно?» В Java я предпочитаю полностью прописывать имена переменных, если только нет очень веской причины для заключения/отмены контракта. Надеюсь, это даст вам пищу для размышлений.

Ответ №1:

Обычно это означает «контекст». Обычно это некоторая структура, которая передается функциям в библиотеке, используемая для поддержания состояния (т. е. Контекста вызова функции).

Это предпочтительная альтернатива использованию глобальных переменных.

Ответ №2:

По acronymsandslang.com Это означает «контекст». Но вы можете поискать там другое значение CTX