Вы пробовали float: left
на Вашем <li/>
? Что-то вроде этого:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
ul li {
float: left;
margin-left: 2em;
}
</style>
</head>
<body>
<ul>
<li>test</li>
<li>test2</li>
</ul>
</body>
</html>
я только протестировал Firefox 3.0.1, работы там. Эти margin
установлен, потому что еще Ваш маркер перекрывает предыдущий объект.
дополнение: Будьте осторожны, что при плавании объектов Вы удаляете их из нормального потока, который в свою очередь заставляет <ul/>
не иметь никакой высоты. Если Вы захотите добавить границу или что-то, Вы станете странными результаты.
Один способ зафиксировать, который должен добавить следующее к Вашим стилям:
ul {
overflow: auto;
background: #f0f;
}
Я вижу, вы используете gcc.
По умолчанию gcc использует стандарт, аналогичный C89. Вы можете «заставить» его использовать стандарт C99 (части, которым он соответствует)
gcc -std=c99 -pedantic ...
Цитата из Руководства GCC
По умолчанию GCC предоставляет некоторые расширения языка C, которые в редких случаях конфликт с C стандарт. Смотрите Расширения до C Языковая семья. Использование -std перечисленные выше параметры отключат эти расширения, где они конфликтуют с выбранной стандартной версией C. Вы также можете выбрать расширенный версия языка C явно с -std = gnu89 (для C89 с GNU расширения) или -std = gnu99 (для C99 с расширениями GNU). По умолчанию, если нет вариантов диалекта языка C задано -std = gnu89; это изменится to -std = gnu99 в будущем выпуске когда поддержка C99 будет завершена. Некоторые функции, которые являются частью C99 стандартные принимаются как расширения в Режим C89.
Что-то не так с вашей установкой gcc, системными заголовками или параметрами компиляции.
Попробуйте скомпилировать с -E. Это покажет вам, что выводит препроцессор, в том числе какие заголовки включены и что в них есть. В моей системе Ubuntu Linux это около 1000 строк вывода, включая следующее:
extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
Вам нужно сообщить gcc, что вам нужен C99 и что вы хотите связать его в libm:
gcc -std=c99 -lm round_test.c
Код, который вы вводите, полностью компилируется в MacOS X 10.5.8 с GCC 4.0.1. Если указать параметры '-Wall -Wextra', он выдает жалобы на неиспользуемые параметры argc и argv - not material.
Вы просматривали
на своей машине?
Вы пробовали с такими параметрами, как '-stc = c99'?
вам необходимо связать с математической библиотекой. Поэтому при компиляции не забудьте добавить флаг -lm
.
C99 был ответом, но полная история немного сложнее. Причина, по которой я вообще играл с этим, заключалась в том, что я пытался скомпилировать библиотеку, написанную для Windows, которая имела свое собственное «оптимизированное» определение round (). Я получил ошибку компоновщика, сообщающую мне, что определение противоречит встроенному, поэтому я удалил определение (и объявление). Как только я это сделал, я начал получать «ошибку неявного объявления».
Кажется, что режим компиляции по умолчанию (без флага -std = c99) не соответствует ни C89, ни C99: если он соответствует C89, вы должен иметь возможность предоставить пользовательское определение round () без конфликтов, и если оно соответствует C99, объявление должно быть в math.h.