小编Bil*_* VB的帖子

使用GCC语句表达式的匿名函数

这个问题并不十分具体; 这真的是我自己的C浓缩,我希望其他人也能发现它有用.

免责声明:我知道很多人会有回应的冲动"如果你试图做FP然后只使用一种功能语言".我在一个需要链接到许多其他C库的嵌入式环境中工作,并且没有太多空间用于更多大型共享库,并且不支持许多语言运行时.而且,动态内存分配是不可能的.我也很好奇.

我们中的许多人已经看到了lambda表达式的这个漂亮的C宏:

#define lambda(return_type, function_body) \
({ \
      return_type __fn__ function_body \
          __fn__; \
})
Run Code Online (Sandbox Code Playgroud)

一个示例用法是:

int (*max)(int, int) = lambda (int, (int x, int y) { return x > y ? x : y; });
max(4, 5); // Example
Run Code Online (Sandbox Code Playgroud)

使用gcc -std=c89 -E test.c,lambda扩展为:

int (*max)(int, int) = ({ int __fn__ (int x, int y) { return x > y ? x : y; } __fn__; });
Run Code Online (Sandbox Code Playgroud)

所以,这些是我的问题:

  1. 线int(*X)究竟是什么?宣布?当然,int*X; 是指向整数的指针,但这两者有何不同?

  2. 看一下这个扩大的宏观,最终会__fn__做什么呢?如果我写一个测试函数 …

c lambda gcc anonymous-function

49
推荐指数
2
解决办法
2万
查看次数

Python中可以使用真正的动态和匿名函数吗?

正如可以使用type(name,base-classes,namespace-dict)创建动态类一样,是否可以创建动态函数?

我尝试过以下方面的做法:

>>> f = type("f", (function,), {})
NameError: name 'function' is not defined
Run Code Online (Sandbox Code Playgroud)

好的,所以我会很聪明,但是:

>>> def fn():
...   pass
... 
>>> type(fn)
<type 'function'>
>>> f = type("f", (type(fn),), {})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: type 'function' is not an acceptable base type
Run Code Online (Sandbox Code Playgroud)

Python是否以与允许动态类相同的方式专门阻止动态函数的创建?

编辑:注意,我不允许任何使用exec ..因为我的问题是Python语言本身允许这样做.

提前致谢.

python

24
推荐指数
3
解决办法
2万
查看次数

apache将单个子域映射到文件夹

在我的/var/www我有很多网站(goodsite,badsite,uglysite).现在他们被访问mydomain.com/goodsite等.

我想要的是一个站点,特别是丑陋的站点,可以访问uglysite.mydomain.com- 其他站点保持不变.

我尝试了各种摆弄.htaccess(in /var/www)的方法.注意我启用了mod-rewrite并启用了mod vhost-alias.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/uglysite/
RewriteRule ^(.*)$ /uglysite/$1 [L]
Run Code Online (Sandbox Code Playgroud)

最终发生的是mydomain.com和uglysite.mydomain.com总是映射到相同的东西(即索引/var/www).我尝试添加一个新的虚拟主机,并且惊讶地发现uglysite.mydomain.com正确映射,但是mydomain.com也直接映射到uglysite.

<Virtualhost uglysite.mydomain.com:80>
       ServerName uglysite.mydomain.com
       ServerAdmin www@localhost
       DocumentRoot "/var/www/"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

以上内容已添加到我的启用站点的/ 000-default文件中.这让uglysite.mydomain.com正常工作,但是mydomain.com映射到了同样的东西!

有没有直接的方式去做我打算做的事情?提前致谢.

apache subdomain .htaccess mod-rewrite virtualhost

13
推荐指数
1
解决办法
2万
查看次数

django模板将数组转换为HTML表

我有一个16个结果列表,我们称之为"结果".我想把它们安排在4 x 4的桌子上.

使用django模板,我该怎么做?(看起来周期不会对我有帮助)

<table>
{% for r in results %}
...?
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

谢谢!!

django django-templates

10
推荐指数
2
解决办法
2万
查看次数

反馈stdin和两个进程的stdout

我有两个进程通过stdin和stdout相互连接.

假设我有进程A和进程B.B的stdout需要提供给A的stdin,并且A的stdout需要输入到进程B的stdout.

有一种简单的方法可以在一个简单的命令中表达这种关系,还是有一个基本的shell脚本可以启用它?

提前致谢.

linux bash shell pipe sh

6
推荐指数
2
解决办法
1130
查看次数

基本不确定JProgress栏用法

我只是想在进行长时间下载时在框架的左下角设置一个不确定的JProgressBar动画.

我看了很多教程,其中没有一个对我很清楚.我只是想在后台下载文件时让它具有动画效果.每个我试过这种方式,它不会动画进度条,直到下载完成.

我需要帮助知道下载()调用的位置.

class MyFunClass extends JFrame {
  JProgressBar progressBar = new JProgressBar();

  public void buttonClicked() {
    progressBar.setVisible(true);
    progressBar.setIndeterminate(true);

    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        progressBar.setIndeterminate(true);
        progressBar.setVisible(true);

        // Do I do my download() in here??

    }});

    // Do download() here???
    progressBar.setVisible(false);
  }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!



编辑:对于那些将来遇到类似问题的人来说,这是基本问题的基本解决方案.这不是我的代码,而是一般草图.内部buttonClicked():

public void buttonClicked() {
  class MyWorker extends SwingWorker(String, Object) {
     protected String doInBackground() {
       progressBar.setVisible(true);
       progressBar.setIndeterminate(true);

       // Do my downloading code
       return "Done."
     }

     protected void done() { …
Run Code Online (Sandbox Code Playgroud)

java swing swingworker jprogressbar progress-bar

6
推荐指数
1
解决办法
2万
查看次数

如何使用clang为C代码生成报告

按照主要的clang静态分析器网页(http://clang-analyzer.llvm.org/scan-build.html)的说明...

我有一个小错误的C文件(badcode.c):

int main(int argc, char ** argv)
{
    int j;
    int a[4];
    puts(a[j]);
    return 'a';
}
Run Code Online (Sandbox Code Playgroud)

为了得到一个基本的想法如何clang静态分析器(scan-build)的话,我运行:

scan-build -v clang badcode.c

它输出:

scan-build: Emitting reports for this run to '/tmp/scan-build-2012-08-17-1'.
scan-build: 'clang' executable not found in '/usr/share/clang/scan-build/bin'.
scan-build: Using 'clang' from path: /usr/bin/clang
badcode.c:7:2: warning: implicit declaration of function 'puts' is invalid in C99 [-Wimplicit-function-declaration]
        puts(a[j]);
        ^
1 warning generated.
scan-build: Removing directory '/tmp/scan-build-2012-08-17-1' because it contains no reports.
Run Code Online (Sandbox Code Playgroud)

好吧,很棒,clang发出一点警告,但仍然会产生a.out.为什么它不会产生报告?j对于任何静态分析仪,unititialized变量应该是一个痛苦明显的红旗 - 为什么不报告它?

我只是使用错误的命令行参数?

static-analysis llvm clang

6
推荐指数
1
解决办法
1004
查看次数

JavaScript Node.js日期比较和数组按日期排序

首先,JavaScript没有像Python那样的基本日期比较吗?

在我的Node.js脚本中,我有以下几行:

console.log(Date(2012,11,10) < Date(2012, 11, 9))
console.log(Date(2012,11,10) > Date(2012, 11, 9))
Run Code Online (Sandbox Code Playgroud)

但是,这两行都返回false.

似乎有很多关于"JavaScript中的日期比较"的问题.

然而,对于几乎所有人来说,有人用他们的自制解决方案来回应比较日期,其中一些很长和/或"hacky".

是否真的没有固有或惯用的方式来简单比较JavaScript中的日期.
任何Node库都支持它吗?

javascript date node.js

6
推荐指数
1
解决办法
2万
查看次数

Bootstrap静态导航栏强制在小屏幕上展开

鉴于来自boostrap模板的这个菜单代码,我希望每个菜单项都堆叠并在检测到屏幕尺寸较小时占用整个宽度.基本上,与"三重条"菜单按钮被击中时相同的功能,除了用户不必手动按下它.

提前致谢.

  <!-- Static navbar -->
  <div class="navbar navbar-default">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Project name</a>
    </div>
    <div class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap

5
推荐指数
1
解决办法
8094
查看次数

JQuery灯箱插件:缩放非常大的图像以适应屏幕

我正在使用jQuery "Lightbox"插件,虽然我不知道这是否是关于手头问题的必要信息.

我通过幻灯片放映的图像非常大; 他们每个都比屏幕大得多(我没有在我的服务器上托管图像,所以我不能调整它们的大小).我需要缩放它们以适应屏幕的范围(也可能有一些余量).是否有一些JQuery或其他Javascript片段来处理这个?

编辑

现在我使用"zoombox",这肯定解决了缩放问题.但是,现在所有漂亮的幻灯片功能都丢失了!即,我不能使用箭头键或循环图像库!

javascript jquery lightbox

4
推荐指数
1
解决办法
2万
查看次数