Меня попросили написать код, который получает тип данных, не уточняя, какой тип (например, int, float, double ect ..) и, конечно же, его число.
Так, как я могу использовать все типы данных?
blockquote>Вы не можете. Точнее говоря, сам процессор не может. Чтобы сравнить 2 числа, ЦП должен знать, какой размер у чисел, если числа целочисленные или с плавающей запятой, и (если это не просто сравнение на равенство), если число подписано или нет.
Есть 3 способа:
a) Дублирование кода (включая шаблоны в C ++, где компилятор автоматически генерирует N версий кода для N типов и использование макросов в C для аналогичного выполнения). [ 1112]
b) Поддерживать только самый большой тип (например, может быть
double
в C) и преобразовывать все в самый большой тип, так что вам нужна только одна функция для одного типа.c) злоупотреблять переменными аргументами и иметь ветви времени выполнения, основанные на аргументе «что это за тип» (и повышенный риск ошибок программиста); как
int findselectnum(char *data_type, int size, ...)
. В основном это заканчивается скрытым дублированием кода (например, вы дублируете цикл в каждомcase
изswitch(data_type)
).В зависимости от реальной ситуации; Я бы использовал смесь первых двух вариантов - например, выясните, почему программное обеспечение было так плохо спроектировано, что оно должно выполнять одну и ту же работу с несколькими различными типами, а затем попытайтесь изменить дизайн, чтобы ему нужно было заботиться только о небольшом количестве различных типов; затем иметь небольшое количество различных функций для типов, которые «неизбежно необходимы» (например, может быть
int findselectnum_int(int num, int array[], int size)
и отдельныйint findselectnum_double(double num, double array[], int size)
; ничего не дляfloat
илиshort
или чего-либо еще, потому что их можно было избежать). [ 1115]
открытый netbeans 6.5, создайте XML-файл и затем вставьте свой код MXML; щелкните правой кнопкой, форматируйте код, наконец скопируйте этот форматированный текст с netbeans и мимо него в разработчике гибкого провода. это - все.... я надеюсь быть полезным