小编Bra*_*enP的帖子

C:使用令牌粘贴扩展宏

所以这里有一些我创建的宏:

#define MODULE_NAME moduleName
#define MODULE_STRUCT MODULE_NAME ## _struct
#define MODULE_FUNCTION(name) MODULE_NAME ## _ ## name
Run Code Online (Sandbox Code Playgroud)

在这些定义之后,我希望发生以下扩展:

MODULE_STRUCT   -->   moduleName_struct
MODULE_FUNCTION(functionName)    -->    moduleName_functionName
Run Code Online (Sandbox Code Playgroud)

但是,当我添加令牌粘贴运算符时,MODULE_FUNCTION和MODULE_STRUCT中的MODULE_NAME的扩展不再发生......在将它们粘贴在一起时,似乎将MODULE_NAME视为文字字符串.

有没有解决的办法?

c macros

16
推荐指数
1
解决办法
3337
查看次数

MongoDB $项目:保留以前的管道字段

在MongoDB投影中,有没有办法指定一些新字段(但同时保留输入到管道投影阶段的字段)?我没有重命名现有的任何字段.

因此,如果我从一个具有'field1'和'field2'的集合开始,并执行以下投影:

{ $project: { field3: { $gt: ['$field1', 10] } } }
Run Code Online (Sandbox Code Playgroud)

我想最终将'field1','field2'和'field3'作为输入提供给下一个阶段,或者从聚合框架输出.

我试图通过排除_id将投影置于排除模式,但这不起作用.

mongodb aggregation-framework

14
推荐指数
3
解决办法
7960
查看次数

在TypeScript中将类导出为Node.js模块

我熟悉exportTypeScript中的关键字,以及使用TypeScript从Node模块导出内容的两种规范方法(当然,也可以使用TypeScript模块,但它们甚至比我正在寻找的更远):

export class ClassName { }
Run Code Online (Sandbox Code Playgroud)

和一系列的

export function functionName () { }
Run Code Online (Sandbox Code Playgroud)

但是,我通常编写模块的方式是:它们稍后作为可实例化的闭包导入,它是:

var ClassName = function () { };
ClassName.prototype.functionName = function () { };
module.exports = ClassName;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用TypeScript导出语法执行此操作?

javascript amd node.js typescript

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

我可以从视图中调用模型吗?

而不是使用完整的PHP MVC,我正在设计一个最适合我的用途.我已经完成了基本框架,并编写了运行我的网站所需的模型和控制器.

现在我正在转向观点,我遇到了一个小困境.我的方法对我来说很好,但是为了将来的参考,我想知道我正在做的是一个坏习惯.

我正在做的事情:

在我的视图中,我正在调用运行我的身份验证系统的模型,并请求用户的登录状态.然后我使用该布尔值来决定是否在视图中显示某些元素,以及在何处放置其他元素.

我应该为每个登录状态设计单独的视图,还是这种方法很好?但是,如果我要将这个MVC应用到我正在为我的客户做的工作中,我需要使用最佳实践.

任何意见,将不胜感激!

php model-view-controller

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

滚动特定区域内的页面内容?

我正在设计一个网站,该网站在固定宽度布局的外边缘上具有固定元素。中心的div用于内容保留。

当用户滚动时,我希望所有内容(除了所说的固定外部导航元素)都停留在该中心元素的边界内。

这是我的意思的快速模型: 替代文字

我可以很容易地将center元素的overflow属性设置为auto,并将所有内容保留在里面。但是,非常重要的一点是,该元素的边缘上不能出现滚动条。

基本上,我想知道如何:

  • 将内容限制在该区域内(也许我可以更改body元素的大小和位置-是否允许?-然后将固定元素放置在body之外。
  • 隐藏使用溢出时在div内显示的滚动条:自动

任何帮助将不胜感激!

html css

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

序列化中的不同行为

我有以下代码:

ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream("test.dat"));
ArrayList<String> list = null;
for(int i = 0; i < 10; i++)
{
    list = new ArrayList<String>();
    list.add("Object" + i);
    oo.writeObject(list);
}
oo.close();
Run Code Online (Sandbox Code Playgroud)

当我打开test.dat文件和unserialize对象时,我得到了所有对象.但是,如果我将我的代码更改为:

ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream("test.dat"));
ArrayList<String> list = new ArrayList<String>();
for(int i = 0; i < 10; i++)
{
    list.clear(); //clear the earlier objects
    list.add("Object" + i);
    oo.writeObject(list);
}
oo.close();
Run Code Online (Sandbox Code Playgroud)

现在,当我读取对象时,我只得到第一个,即Object0.有人可以解释一下这种行为吗?

java serialization

3
推荐指数
1
解决办法
78
查看次数

包含多次的头文件中的Typedef

基本上,我已经定义并输入了这个结构:

typedef struct{
    void** elements;
    int numElements;
    int itemSize;
    int capacity;
    int dynamicElements;
}array;
Run Code Online (Sandbox Code Playgroud)

我已经编写了动态数组操作函数.但是,我有点问题.在各种函数中,我将此结构作为参数传递.为了模块化代码,我需要在头文件中对这些函数进行原型化(为了允许类型数组的参数,我需要在这些头文件中包含"array.h".)

因此,在包含所有头文件之后,"array.h"头文件已被多次包含.正如所预料的那样,struct类型不止一次被typedef,并导致冲突.

我的问题是:如何在我的头文件中定义这个定义,这样如果多次包含它就不会中断?

c struct typedef header header-files

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

Escape Dust.js标签

TLDR; 跳到主要问题的底部段落.

我会试着通过省略我为什么要这样做以及围绕它的上下文来保持这种简洁和简洁.但至少,我在后端运行Node.js,使用Dust.js渲染每个视图.

然后我还有一个Dust的客户端副本,它根据需要动态呈现界面元素.当它投入生产时,我将预编译所有客户端Dust模板,并完全避免这个问题.但是,在开发过程中,如果我可以将模板保存在DOM元素中,测试会更简单.但是,这些"子模板"会被破坏,因为打算在客户端模板中使用的标记会填充空值(因为我无法将它们提供给服务器端渲染器).

说我有这个模板:

<!DOCTYPE html>
<html>
<head>
    <title>{title}</title>
</head>
<body>
    <div id="some_template_to_be_rendered_client_side">
        <p>{description}</p>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想{TITLE}模板标签当模板呈现出由Node.js的灰尘漫天,但是我正在寻找一种方式来逃避的{}描述标签,这样我可以动态编译和渲染模板在客户端使用div中的HTML作为模板.

javascript templates node.js dust.js

3
推荐指数
1
解决办法
2141
查看次数

用于设计字体的Windows软件

(不确定这是否属于SO,但没有其他Stack Exchange网站似乎合适...)

我有一些项目,我想设计自己的字体,但我想把它们变成真正的TTF字体,而不仅仅是矢量图形.我已经多次"搜索"了这个主题,但我能找到的结果都是字体设计师.

你们有什么建议吗?或者也许像PhotoShop或Adobe Illustrator这样的其他软件能够通过插件实现这一目标吗?(我愿意购买该软件;它不一定是免费软件.)

谢谢!

fonts truetype font-face typeface

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

如何将元素放置在距浏览器顶部固定距离的位置?

我想定位一个元素,使其始终与浏览器顶部保持一定的距离,这样即使用户向下滚动,图像也始终与屏幕顶部的距离相同.我该怎么做呢?

css

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

PHP - 死于'?>'

所以我有一个奇怪而且含糊不清的问题,我似乎无法找到互联网上任何地方的模糊答案.

我写了一堆便于结账过程的课程.整个过程在我的开发服务器上运行得非常好,但是当我将它上传到我的客户端服务器时,代码就会中途消失(我可以告诉我,因为我知道哪些操作已执行但未执行).

调试我的开发服务器上的代码不会产生任何警告或错误(这是正确的,因为它在本地工作).

在远程服务器上运行网站时,代码将以'?>'作为唯一输出.在这里发布的代码太多了,我不能将其缩小到特定的行甚至文件,因为我没有得到任何错误输出(正如我上面提到的,调试它是没有用的,因为它在我可以访问调试器的位置运行良好.

所以tldr; 我的问题是:为什么这个?>有可能被回应到页面?这篇文章的性质表明它正在终止并出于某种原因打印PHP结束终结符标签?

我没有线索.我明白这个问题很难用我给你的东西来诊断(而且这也是我必须继续下去的),但即使是最轻微的想法或建议也会无限有用.

谢谢!

php

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

函数返回Int尽管返回类型定义不同

所以我在这里有点困惑.我正在开发一个更大的项目,但遇到了一些问题,所以我用一个简单的结构编写了一个小测试用例:

#include <stdio.h>

typedef struct{
    int property1;
}test;

int main(){
    test testing = getNumber();
    printf("%d",testing.property1);
    return 0;
}

test getNumber(){
    test testing = {2};
    return testing;
}
Run Code Online (Sandbox Code Playgroud)

我要做的就是从getNumber()返回的测试结构中读取一个属性.但是,编译器抱怨以下错误:

test.c(8):错误C2440:'初始化':无法从'int'转换为'test'

所以我的问题是:尽管我指定了一个测试返回类型,为什么这个函数试图返回一个int?我该如何解决?我只是对简单的事情视而不见?

c struct

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

printf限制为三个字符?

我已经将这个函数解决了导致问题的原因,但是我会试着给这个问题提供足够的上下文,而不会让你仔细阅读文本的行和行:

基本上,我在下面的函数中输入一个字符串,如果字符串中的第一个字符是#,那么我想打印字符串.而已.

但是,执行此操作时,打印的字符串将以三个字符的长度剪切.例如,在输入字符串为" #Hello,World! "的情况下,仅打印" #H ".

我从以下输入文件中使用fgets()获取输入字符串:

#测试
########
更多

输出如下:


###
###
#

#m的

以下是相关的修剪功能:

int main(int argc,char *argv[]){

    FILE    *input;
    lineResponse response;

    //If a filename was specified, the file exists, and it is openable
    if(argv[1] != NULL && (input = fopen(argv[1],"r")) != NULL){
        char *currentLine = "";
        //Loop through the lines
        while(fgets(currentLine,sizeof(input),input)){
            response = parseLine(currentLine);
        }
    }

    fclose(input);

    getchar();

}

lineResponse parseLine(char *line){
    lineResponse response = {0,NULL}; //0 is the default lineType, denoting a line that …
Run Code Online (Sandbox Code Playgroud)

c printf

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