我最近-pedantic在gcc上启用了选项,现在我有大约两到三页的"ISO C90禁止混合声明和代码"警告.
我在这个项目中的目标是能够在任何带有交流编译器的主流系统上部署它,所以我意识到假设C99在任何地方都得到支持是不明智的,但是它是否值得花时间来解决这些警告?
是否还有那些不支持混合声明和代码的c编译器系统?
好的,我在这里看过很多关于C中奇怪的习语和常见做法的帖子,这些帖子可能最初并不直观.也许有几个例子是有序的
数组中的元素:
#define ELEMENTS(x) (sizeof (x) / sizeof (*(x)))
Run Code Online (Sandbox Code Playgroud)
a[5] = 5[a]
Run Code Online (Sandbox Code Playgroud)
#define FOO(X) do { f(X); g(X); } while (0)
#define FOO(X) if (1) { f(X); g(X); } else
Run Code Online (Sandbox Code Playgroud)
我对专家C程序员的问题是:在C代码中有哪些成语,实践,代码snippits或鲜为人知的事实,但可能不是很直观,但是对C编程提供了很好的洞察力?
HTML:
<ul>
<li><img src="image1.png" /></li>
<li><img src="image2.png" /></li>
<li><img src="image3.png" /></li>
<li><img src="image4.png" /></li>
<li><img src="image5.png" /></li>
<li><img src="image6.png" /></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
...图像都是不同的尺寸,我想垂直居中.
jQuery的:
$('ul li').css('paddingTop', height($("ul li").height() - ("li img") / (2)));
# padding-top = height of li - height of image / 2
Run Code Online (Sandbox Code Playgroud)
..但这不起作用.
我们有一个正在关门的客户.我们希望将发往其域的所有流量重定向到新页面index.html,并在_img子目录中包含一些图像.(该页面解释了发生了什么,当前客户对当前订单的期望等等)
我已经阅读过关于可能使用HTTP 410 Gone作为技术上向机器人解释的最佳方式,该网站不在那里,没有回来而且没有提供转发地址.在.htaccess文件中执行此操作的最佳方法是什么,并将用户定向到新的index.html?
我听说c ++程序员应该避免使用memset,
class ArrInit {
//! int a[1024] = { 0 };
int a[1024];
public:
ArrInit() { memset(a, 0, 1024 * sizeof(int)); }
};
Run Code Online (Sandbox Code Playgroud)
所以考虑到上面的代码,如果你不使用memset,怎么能把[1..1024]填充为0?在C++中memset有什么问题?
谢谢.
你如何在Django中使用模型formset?当你这样做:
from django.forms.models import modelformset_factory
OrderFormset = modelformset_factory(Order)
formset = OrderFormset()
Run Code Online (Sandbox Code Playgroud)
formset包含来自DB的所有订单...
如何将它们限制为例如profile.orders(Profila与FK连接到Order)?
在此先感谢,Etam.
每当我需要移动到新机器,或者购买笔记本电脑,或者通过不断的安装和卸载搞砸我的注册表时,我开始对设置所有开发工具感到非常厌倦。
所以新计划。我听说人们虚拟化他们的开发环境,这听起来是个好主意。唯一的问题是,我对运行虚拟机的经验很少,所以当我不知道时,我会做我经常做的事情,我会问 stackoverflow。
您在虚拟机中运行开发环境吗?我应该注意什么?有哪些不明显的优势?
我在装有 XP 的 Dell Optiplex 760 上安装了免费版本的 VMWare 服务器,该服务器位于我公司的 Active Directory 域中。
在其中,我创建了一个名为 Dev Tools 的 25 GB 虚拟机,安装了 XP,它不在任何域中。这就是 Visual Studio、TortoiseSVN、Git、Ruby、Toad 等的发展方向。我还将创建一个虚拟磁盘来存储代码文件。
还有一些问题:
我厌倦了asType用try/catchblock 封装每个调用:
def b = ""
def c
try {
c = b as Integer
}
catch (NumberFormatException) {
c = null
}
println c
Run Code Online (Sandbox Code Playgroud)
相反,我想在我的代码中写下以下内容:
def b = ""
def c = b as Integer
Run Code Online (Sandbox Code Playgroud)
如果b格式不正确,那么我想null分配给c
那么如何为asType运营商重载此默认行为?
如果我为整个Grails应用程序执行此操作会有风险吗?或者是简单地创建我自己的方法(比如asTypeSafe)并调用它的最佳解决方案?Groovy/Grails有关于Groovy类型转换的一些配置调整吗?
编辑(对于对已实现的答案感兴趣的人)根据接受的答案,我将以下代码添加到我的bootstrap.groovy文件中,它完美地运行.
String.metaClass.asTypeSafe = {Class c ->
try {
delegate.asType(c)
}
catch (Exception) {
return null
}
}
Run Code Online (Sandbox Code Playgroud)
我将其称为如下:
def myNum = myStr.asTypeSafe(Integer)
Run Code Online (Sandbox Code Playgroud) 我有这个logback.xml文件:
<configuration debug="true" scan="true" scanPeriod="60 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${MY_HOME}/logs/mylog.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/my.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n</Pattern>
</layout>
</appender>
<root level="TRACE">
<appender-ref ref="FILE"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
并且${MY_HOME}是一个已定义的系统变量(echo $MY_HOME在linux上显示正确的路径).
问题是,logback似乎没有正确读取它,它存储日志 MY_HOME_IS_UNDEFINED/logs/my.log
我究竟做错了什么?非常感谢!
编辑:我犯了一个错误,把OSC_HOME放在我真正意味着MY_HOME的地方.对于那个很抱歉