- 1
sprintf(name," %s", trim("рубль",0));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+141
sprintf(name," %s", trim("рубль",0));
Функция trim(char*, int), где вторым параметром указывается с какой стороны удалять пробелы(0 - с обеих сторон)
+127
(&goodsBuff[k].name==&vmass[p].name)
Сравнение строк
+135
do {
data = get_stat();
} while ((data & (1 << stat_smth_ok_bit_n)) != (1 << stat_smth_ok_bit_n));
Суровый педантичный немецкий код.
+145
enum {
CONST_A,
CONST_B,
CONST_C,
/* ... и еще пяток в том же духе */
};
/* ... */
char opType = ...;
switch(opType) {
case 'A':
/* строчек 10 кода использующие CONST_A */
break;
case 'B':
/* капипасто тех же строчек 10 кода - но теперь с CONST_B */
break;
case 'C':
/* капипасто тех же строчек 10 кода - но с CONST_C */
break;
/* и т.д. и т.п. для других значений opType */
}
только что убил полчаса что бы понять что switch/case завален 100% копиями того же самого кода - только со смененной константой. просто замапить тот char в enum ... это наверное исключительно для слишком умных.
+144
void addSlash( const char* command, char* sdo )
{
int command_length;
char *command_line = command;
command_length = strlen(command);
while(command_length>0){
switch(*command_line){
case '"':
strcpy(sdo+strlen(sdo),"\\");
default:
strcpy(sdo+strlen(sdo), command_line);
}
command_line++;
command_length--;
}
}
Должно быть добавление слешей перед двойными кавычками.
+113
char anarch[sizeof(long double) * sizeof(long)];
Задали одному студенту (5 курса, между прочим) написать программу для решения анаграмм...
Перед вами фрагмент кода, где объявляется буфер для хранения слова.
На вопрос "Зачем ты так написал?" ответ был: "Хотел избавиться от дефайнов и магических чисел".
На вопрос о размере буфера ответ был: "Так ведь не бывает слов длиннее 40 букв".
+98
//
// Замена блоков __try/__finally нашей реализацией. Примеры использования:
// NTSTATUS SomeFunc() {
// X *p = NULL;
// NTSTATUS status = STATUS_SUCCESS;
// Try {
// p = new(NonPagedPool) X;
// if (!p) Leave(status = STATUS_INSUFFICIENT_RESOURCES);
//
// status = SomeKernelFunc();
// LeaveNS(status = STATUS_UNSUCCESSFUL);
// } Finally {
// if (p) delete p;
// }
// return status;
// }
//
#define Try if (1)
#define Finally try_exit: NOTHING
#define Leave(s) { s; goto try_exit; }
#define LeaveNS(s) {if (!NT_SUCCESS(status)) Leave(s);}
#define Run(s) {status = s; LeaveNS(;);}
Суровые исключения для Win32 драйвера
+144
switch (n)
{
case k:
some_action;
case k - 1:
some_action;
...
case 2:
some_action;
case 1:
some_action;
}
- когда может быть удобно использование switch без break'ов?
- например, когда хотите повторить операцию сколько-то раз
+127
UINT32 GetHostName(char *hostName, UINT32 hostNameBufSize)
{
if (hostName == NULL ){
OSALTRACE(OSAL_ERROR, ("Error: Input parameter hostName(null)."));
return -1;
}
FILE *fp = NULL;
static char buffer[512];
char tag[64];
// hope this size will be OK for one line to read from the fileOB
char line[1000];
char *linep=line;
int buffSize = sizeof(buffer);
int found = 0;
fp = fopen("/etc/resolv.conf", "r");
if ( fp == NULL)
{
OSALTRACE(OSAL_ERROR, ("failed to open resolver config file."));
return -1;
}
while ( ((*linep=getc(fp)) != EOF) && !found )
{
if (*linep++ == '\n')
{
*linep = '\0';
sscanf(line, "%s %s", tag, buffer);
if (tag[0] && (!strcmp(tag, "search") || !strcmp(tag, "domain") ) ) {
found = 1;
break;
}
linep = line;
}
}
fclose(fp);
if ( found )
{
strcpy(hostName,buffer);
OSALTRACE(OSAL_DEBUG, ("DHCP domain is %s.", buffer));
}
else
{
OSALTRACE(OSAL_ERROR, ("Could not find dhcp domain in resolv.conf."));
return -1;
}
return !found;
}
Intel WiMAX Network Service, не какая-то пионерская поделка...
+144
if ( found )
{
strcpy(hostName,buffer);
OSALTRACE(OSAL_DEBUG, ("DHCP domain is %s.", buffer));
}
else
{
OSALTRACE(OSAL_ERROR, ("Could not find dhcp domain in resolv.conf."));
return -1;
}
return !found;
}
Intel WiMAX Network Service, не какая-то пионерская поделка...