|
|
  |
QSORT |
|
|
|
Oct 23 2007, 16:38
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Евгений Германович @ Oct 23 2007, 19:43)  все проверю,до завтра. { qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13 А позиции-то? Мне их вручную по буквам считать? Лень как-то... Цитата(Евгений Германович @ Oct 23 2007, 19:43)  все проверю,до завтра. { qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13 Попробуйте поставить амперсанд перед compar. Я точно не уверен - но кажется получение адреса функции без амперсанда появилось в языке не сразу.
--------------------
Пишите в личку.
|
|
|
|
|
Oct 23 2007, 19:16
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(zltigo @ Oct 23 2007, 22:24)  Имена массивов, структур и функций отродясь были адресами - не верите, спросите у Ритчи  Вы скорее всего правы - в тонкой синей книжечке, которой у меня под рукой уже давно нет  кажется именно так и было. Но амперсанд я бы все равно попробовал поставить и посмотреть на результат в такой сиуации. Мало ли какие ошибки допустили программисты компилятора? Цитата(Евгений Германович @ Oct 23 2007, 19:43)  все проверю,до завтра. { qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13 Кстати, если нужно отсортировать пяток чисел - лучше вместо библиотечной qsort использовать самописный классический пузырек. Всего двойной вложенный цикл. И горадо быстрее будет работать, и код будет компактнее, что на 8-битках может быть существенным. В CRTL от MS для Win32 в qsort короткие последовательности длины меньше 8 сортируются пузырьком - так быстрее.
--------------------
Пишите в личку.
|
|
|
|
|
Oct 24 2007, 12:59
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Не ссорьтесь.Я до неприличия упростил программу.Вся проблема в самой функции QSORT Программу для сортировки я уже написал ипользовав прототип QSORT,но есть жгучее желание добить. #include "C:\Program Files\PICC\CHUDO\asdf\asd1.h"
#include <stdlib.h> #define A_SIZE 5 int nums[A_SIZE] = { 2,3,1,5,4 };
//int compar( char *arg1, char *arg2 )
//{ // return( *(int *)arg1 - *(int *)arg2 ); //} compar() { return 1; }
void main() { qsort( nums, sizeof(nums)/sizeof(int), sizeof(int),compar); }
Clean: Deleting intermediary and output files. Clean: Deleted file "asd1.ERR". Clean Warning: File "C:\Program Files\PICC\CHUDO\asdf\asd1.o" doesn't exist. Clean: Done. Executing: "C:\Program Files\PICC\Ccsc.exe" "asd1.c" +FH +DF +LN +T -A +M +Z +Y=9 +EA *** Error 51 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 21(53,59): A numeric expression must appear here 1 Errors, 0 Warnings. Halting build on first failure as requested. BUILD FAILED: Wed Oct 24 18:50:54 2007
53.59 это слово компар.Мне кажется перед компар нужно воткнуть какоето извращение. Мне в этом компиляторе при передаче параметров пришлось весьма нестандартно описывать указатели.
|
|
|
|
|
Oct 25 2007, 15:36
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Евгений Германович @ Oct 25 2007, 18:45)  Я ответил,но перепутал адресата,все работало и еще один вариант из предложенных но ... Что такое gcc У меня проц микрочиповский пик18.Си которые для них это хайтекси и с18 но у меня их нет. Я вообще говоря с пиками дела никогда не имел и особо не хотел бы  Но мне казались что они когда-то были восьмибитниками. Они как-то поддержали 16-битный режим? GCC: http://gcc.gnu.org/Но пики кажется не поддерживает - по крайней мере, я про это ничего не помню. P.S. Вы меня обмануть пытаетесь! http://ww1.microchip.com/downloads/en/Devi...c/DS-39630d.pdf8-битник да еще и с Гарвардовской архитектурой! Нет ничего хуже для C компиляторов
--------------------
Пишите в личку.
|
|
|
|
|
Oct 26 2007, 13:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Цитата(Oldring @ Oct 25 2007, 18:36)  Я вообще говоря с пиками дела никогда не имел и особо не хотел бы  Но мне казались что они когда-то были восьмибитниками. Они как-то поддержали 16-битный режим? GCC: http://gcc.gnu.org/Но пики кажется не поддерживает - по крайней мере, я про это ничего не помню. P.S. Вы меня обмануть пытаетесь! http://ww1.microchip.com/downloads/en/Devi...c/DS-39630d.pdf8-битник да еще и с Гарвардовской архитектурой! Нет ничего хуже для C компиляторов  Нет не пытаюсь мин длина команды 12 бит, у 18 пиков 16 бит те шина данных 16бит.У 24 пиков не знаю. А по данным конечно байт.Для си может и нет но прирост скорости по сравнению с нейманом впечатляет.За ссылку спасибо но аглицким не владею.
Сообщение отредактировал Евгений Германович - Oct 26 2007, 13:43
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|