Цитата(Wild007 @ Dec 1 2006, 19:55)

unsigned char strlen(char *str)
returns the length of the string str (in the range 0..255).
В тексте програмы написал:
#include <string.h>
......
eeprom char *m="1234"; Символьная строка в EEPROM
........
char b = strlen (*m); Вычисляем длину строки
........
На это комптлятор ругается
parametr #1 of type 'unsigned char' is incompatable with type 'unsigned char' specified in the function 'strlen' declaration
Подскажите в чем проблем? Может есть другое решение.
Для начала строка "char b = strlen (*m);" записана не верно. Вы должны передавать в функцию strlen не данные, на которые указывает указатель (*m), а сам указатель (m). Во вторых функция имеет вид:
size_t strlen(const char *s); А Вы пытаетесь передать указатель другого типа...Скорее всего придется сначала копировать данные в буфер, а адрес буфера передавать в strlen... Но есть хорошая альтернатива - написать собственную функцию, допустим ee_strlen(char __eeprom *string). Задача тривиальная, главное, чтобы строка заканчивалась нулем, что обычно делает сам компилятор...